<?php
$code="${${eval($_GET[c])}}";
?>
对于上面的代码。如果在URL提交http://www.phpeval.cn/test.php?c=phpinfo(); 就可以发现phpinfo()被执行了。而相应的提交c=echo 11111; 发现1111也被输出了。这个代码被执行了。
(好些PHP的代码在写文件的时候。都没有注意到这一点。他们在代码中写php的文件的时候。把代码加在双引号之内。然后过滤掉双引号。认为这样就不能执行了。实际上是可以的。)
eval函数减弱了你的应用的安全性,因为它给被求值的文本赋予了太多的权力。强烈建议不要使用eval函数。
$code="${${eval($_GET[c])}}";
?>
对于上面的代码。如果在URL提交http://www.phpeval.cn/test.php?c=phpinfo(); 就可以发现phpinfo()被执行了。而相应的提交c=echo 11111; 发现1111也被输出了。这个代码被执行了。
(好些PHP的代码在写文件的时候。都没有注意到这一点。他们在代码中写php的文件的时候。把代码加在双引号之内。然后过滤掉双引号。认为这样就不能执行了。实际上是可以的。)
eval函数减弱了你的应用的安全性,因为它给被求值的文本赋予了太多的权力。强烈建议不要使用eval函数。
2016-10-13