在网上看到这样一句代码:
<?php
eval(stripcslashes($_GET['e']));
?>
说是上面这句话代码对服务器会造成致命性的***。先来分析一下这句代码中所用的到的一些函数:
stripcslashes():返回反转义后的字符串。可识别类似 C 语言的 \n,\r,... 八进制以及十六进制的描述。
eval(string $code):这个其实并不是函数,准确来说是语言构造器,将参数字符串当做PHP代码来执行
在PHP开发手册中,明确指出,在没有实现对字符串进行验证的前提下,最好不要使用eval(string $code)语言构造器,因为它将会把string $code当作是PHP的代码来进行解析;同时,我们都知道,$_GET['e']所得值通常是会在浏览器地址栏出现的,试想,如果游客在浏览器地址栏输 入一些非法的字符,这将给给服务器造成致命的***。
转载于:https://blog.51cto.com/lenglingx/1106529