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

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

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

eval()使用范例:

本例的传回值为:

这个$string中装有$name.

这个杯子中装有咖啡.

或更高级点的是:

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

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

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

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

because eval() is a languageconstruct andnot a function

那么php怎么禁止eval呢?

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

看完本文有收获?请分享给更多人

关注[PHP开发者],提升PHP开发技能

您看此文用·秒,转发只需1秒~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181026B1XGZA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券