今天在一个群里,看到有人说:为了安全,在安装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也会相对降低性能
很久没有更新的博客了!
都能放后门了,禁止eval还有意义么?
不错,顶一个!!!!
@青云 引用了一个随机的swf地址
博主右侧的搞笑视频很有喜感,怎么放我网站?
价值数万网赚项目,营销软件,每天更新,终生下载
终生会员只需20元,介绍一人提成2元,9级下线
倍增模式,轻松月赚三万
http://www.lianxin818.com/?58
@lixiphp 不需要尖括号,我用的少一些
eval可以把字符串当做php代码来执行,应该这样使用吧。
eval('<?php phpinfo(); ?>'); 这个函数挺好用的。