php作为世界上最好的语言,很容易写出相当牛x的功能,比如一句话木马,所有的php一句话木马都有个核心函数eval。正常情况下来说,一般的php代码,并不会使用到eval函数。所以,出于安全角度考虑,禁用掉phpeval函数,是非常有必要的。

苏南大叔:php 如何禁用 eval 函数?disable_functions 使用范例 - php-disable
php 如何禁用 eval 函数?disable_functions 使用范例(图6-1)

本文测试环境:mac/php72

php.inidisable_functions

php.ini中,有个disable_functions项目,可以用于设置要禁用的php函数。但是却不能禁用eval函数。据说,是因为eval并不是php的函数,而是zend的函数。这个结论听起来是比较玄乎。

错误的配置示意:

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names.
; http://php.net/disable-functions
disable_functions = eval

正常的配置示意(没有eval的原因是:写上也不生效):

disable_functions = passthru,exec,system,chroot,chgrp,chown,popen,proc_open,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,shell_exec

总结

虽然有禁用eval函数的需求,但是也不是非禁用不可。鉴于目前禁用eval的方法方案都不是太完美,所以,大家可以期待suhosin扩展的再次更新吧。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    php扩展

本站的忠实读者小伙伴,正在阅读下面这些文章: