php的eval函数危害与正确禁用方法

2023年 7月 14日 44.9k 0

php的eval函数并不是系统组件函数,因此我们在php.ini中使用disable_functions是无法禁止它的。

但是eval()对于php安全来说具有很大的杀伤力,因此一般不用的情况下为了防止类似如下的一句话木马入侵,需要禁止!

php的eval函数危害与正确禁用方法

eval()使用范例:

php的eval函数危害与正确禁用方法

本例的传回值为:

这个$string中装有$name.

这个杯子中装有咖啡.

或更高级点的是:

php的eval函数危害与正确禁用方法

对于上面的咖啡的例子,在eval里面,首先字符串被替换了,其次替换完后形成一个完整的赋值命令被执行了.

 

这类小马砸门的情况是需要禁止掉的!

然而网上很多说使用disable_functions禁止掉eval的方法都是错误的!

 

其实eval()是无法用php.ini中的disable_functions禁止掉的:

 

because eval() is a languageconstruct andnot a function

 

那么php怎么禁止eval呢?

如果想禁掉eval可以用php的扩展 Suhosin:

 

安装Suhosin后在php.ini中load进来Suhosin.so,再加上suhosin.executor.disable_eval = on即可!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论