<?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