微信号:phpdevelopers

介绍:PHP开发者(phpdevelopers)-做最专业的PHP资源分享平台!

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

2018-10-26 20:09 php开发者

phpeval函数并不是系统组件函数,因此我们在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:

 

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


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

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


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


 
php开发者 更多文章 正则表达式常用的四个方法 40条技巧优化PHP代码 一线互联网公司PHP程序员面试题汇总,最终成功拿到百度的offer 还没毕业就被阿里30万年薪预定,他凭什么? php7和php5区别
猜您喜欢 10张PPT干货,教你写出一流文案 2017年ACM程序设计大赛:清华北大复旦进前10 大数据微课| 车丽美百度|绽放数据可视化之花 3月全球数据库排名:PostgreSQL 再迎暴涨 【计算机视觉】OpenCV中直方图处理函数简述