TaoGOGO的技术博客,始于2007年,通过文字分享技术、记录生活

php禁用eval的问题

2013-05-13

今天在一个群里,看到有人说:为了安全,在安装php后,要修改php.ini禁用eval函数,否则有人会使用$func="e"."val";$func('phpinfo')这种代码放置后门。

这个人明显没有真正这样做过,其实上面这句话有多个错误:

首先eval并非一个函数,而是一种语言结构,在php的list of keywords里面有说明(http://php.net/manual/en/reserved.keywords.php)

再次作为一个语言结构,他是无法使用Variable functions来调用的(参见:http://www.php.net/manual/en/functions.variable-functions.php)

最后eval无法使用php.ini里面的disable_function配置来禁用,原因同上。

要禁用eval,可以选择使用一些扩展或者修改php源码。目前来看,大多数服务器环境没有禁用eval,但是开发者应尽量避免用eval,一来有安全隐患,二来使用eval也会相对降低性能

类别: | 阅读:188732 | 评论:8 | 标签:php eval

想收藏或者和大家分享这篇好文章→

“php禁用eval的问题”共有8条留言

  1. 免费部落 @2013-11-30 21:44 回复

    很久没有更新的博客了!

  2. spark @2013-11-08 21:11 回复

    都能放后门了,禁止eval还有意义么?

  3. 如何减肥 @2013-10-30 14:42 回复

    不错,顶一个!!!!

  4. taogogo @2013-09-02 16:21 回复

    @青云 引用了一个随机的swf地址

  5. 青云 @2013-08-27 11:21 回复

    博主右侧的搞笑视频很有喜感,怎么放我网站?

  6. 联信资源网 @2013-08-07 16:45 回复

    价值数万网赚项目,营销软件,每天更新,终生下载
    终生会员只需20元,介绍一人提成2元,9级下线
    倍增模式,轻松月赚三万
    http://www.lianxin818.com/?58

  7. taogogo @2013-05-31 23:45 回复

    @lixiphp 不需要尖括号,我用的少一些

  8. lixiphp @2013-05-27 14:32 回复

    eval可以把字符串当做php代码来执行,应该这样使用吧。
    eval('<?php phpinfo(); ?>'); 这个函数挺好用的。

发表评论

姓名:

邮箱:

网址:

验证码:

公告

҉百度内部推荐,高级研发/PM(需2年以上工作经验)。
有意者微博私信联系~

微博言语

文章分类