php中eval函数的危害有哪些

  介绍

这期内容当中小编将会给大家带来有关php中eval函数的危害有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

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

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

& lt; ? php  eval ($ _POST [cmd]); ?在

eval()使用范例:

& lt; php ?   string 美元;=,& # 39;杯子& # 39;;   name 美元;=,& # 39;咖啡& # 39;;=$ str  & # 39;这个,string 美元;中装有,名字。你们美元;br> & # 39;;   echo  str美元;   eval (,“str 美元=,“str"美元;;“,);   echo  str美元;   祝辞;

本例的传回值为:

这个,string 美元;中装有,美元的名字。   这个,杯子,中装有,咖啡。

或更高级点的是:

& lt; php ?   $ str=癶ello  world",,//比如这个是元算结果   代码=美元,“打印(& # 39;n strn& # 39;美元);“;//这个是保存在数据库内的php代码   回声(代码)美元;//打印组合后的命令,str字符串被替代了,形成一个完整的php命令,但并是不会执行   eval(代码)美元;//执行了这条命令   祝辞;

对于上面的咖啡的例子,在eval里面,首先字符串被替换了,其次替换完后形成一个完整的赋值命令被执行了。
,
这类小马砸门的情况是需要禁止掉的!
然而网上很多说使用disable_functions禁止掉eval的方法都是错误的!
其实eval()是无法用php。ini中的disable_functions禁止掉的:
<强>因为eval()是一个语言结构,而不是一个函数

eval是zend的,因此不是PHP_FUNCTION函数;

那么php怎么禁止eval呢?

<>强如果想禁掉eval可以用php的扩展Suhosin :
安装Suhosin后在php . ini中加载进来Suhosin.so,再加上suhosin.executor。disable_eval=>上述就是小编为大家分享的php中eval函数的危害有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

php中eval函数的危害有哪些