时间:2021-05-24
作者:phpeval
前段时间一个程序出的问题。就和这差不多。
复制代码代码如下:
<?php
$code="${${eval($_GET[c])}}";
?>
对于上面的代码。如果在URL提交http:///test.php?c=phpinfo(); 就可以发现phpinfo()被执行了。而相应的提交c=echo 11111; 发现1111也被输出了。这个代码被执行了。
(好些PHP的代码在写文件的时候。都没有注意到这一点。他们在代码中写php的文件的时候。把代码加在双引号之内。然后过滤掉双引号。认为这样就不能执行了。实际上是可以的。)
还有一些利用方式,比如:
复制代码代码如下:
<?php
$code=addslashes($_GET[c]);
eval(""$code"");
?>
提交 http:///test.php?c=${${phpinfo()}}; phpinfo()就被执行。如果提交
http:///test.php?c=${${eval($_GET[d])}};&d=phpinfo();
这样的话,d后面的代码也被执行。
解决方法:
eval函数减弱了你的应用的安全性,因为它给被求值的文本赋予了太多的权力。强烈建议不要使用eval函数。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
php的eval函数并不是系统组件函数,因此我们在php.ini中使用disable_functions是无法禁止它的。但是eval()对于php安全来说具有很
一个优秀的PHP程序员除了要能顺利的编写代码,还需要具备使程序处于安全环境下的能力。今天我们要向大家讲解的是有关PHP防范SQL注入的相关方法。说到网站安全就不
Eval函数计算一个表达式的值并返回结果。[result=]Eval(expression)参数result可选项。是一个变量,用于接受返回的结果。如果未指定结
Eval函数计算一个表达式的值并返回结果。[result=]Eval(expression)参数result可选项。是一个变量,用于接受返回的结果。如果未指定结
最近发布代码的时候,遇到一个问题,发现Python中eval()函数的危险性.然而我还是个菜鸟,其中有一段代码是这样的。queryset=eval("model