php如何禁用 eval 函数?

AndyYang| 阅读:819 发表时间:2021-03-29 21:20:02 php
摘要:方法一:suhosin扩展;方法二:diseavl扩展
php作为世界上最好的语言,很容易写出相当牛x的功能,比如一句话木马,所有的php一句话木马都有个核心函数eval。正常情况下来说,一般的php代码,并不会使用到eval函数。所以,出于安全角度考虑,禁用掉php的eval函数,是非常有必要的。

在php.ini中,有个disable_functions项目,可以用于设置要禁用的php函数。但是却不能禁用eval函数。据说,是因为eval并不是php的函数,而是zend的函数。

方法一:suhosin扩展

迄今为止,这个韩国人出品的suhosin方案是最出名的了。但是,没有跟上时代的步伐,截至到发稿,仅仅支持到php7.1。所以,下面列出相关github源码地址,大家自行尝试吧。编译的方案是非常传统的php扩展编译方式,没有太特别的。
官方网站:https://suhosin.org/stories/download.html
php5系列扩展:https://github.com/sektioneins/suhosin
php7系列扩展:https://github.com/sektioneins/suhosin7


方法二:diseavl扩展

在suhosin不支持最新的php72和php73的前提下,在github上面又找到了这个扩展diseval。实验了一下diseval,居然可以使用。但是,官方说明里面说,在php7下面是不稳定的。截至发稿,其最新版本号为0.1。diseval源码地址是:
https://github.com/mk-j/PHP_diseval_extension

diseval编译方式和普通的php的源码编译方式,稍稍有所不同。不同的地方就是:要先进source/目录再编译,而不是像其他扩展源码一样,在根目录下面直接编译。
本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有0条评论

昵称:
邮箱:

  • 最新评论

iPhone查询中 - bbs.ipcxz.com 朋友帮 - www.pengyb.cn iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号