美文网首页技术文档
PHP如何避免 $_SERVER["PHP_SELF&

PHP如何避免 $_SERVER["PHP_SELF&

作者: 雨声不吃鱼 | 来源:发表于2016-09-19 11:13 被阅读898次

    $_SERVER["PHP_SELF"]是超级全局变量,返回当前正在执行脚本的文件名,与 document root相关。

    当黑客使用跨网站脚本的HTTP链接来攻击时,$_SERVER["PHP_SELF"]服务器变量也会被植入脚本。原因就是跨网站脚本是附在执行文件的路径后面的,因此$_SERVER["PHP_SELF"]的字符串就会包含HTTP链接后面的JavaScript程序代码。


    如何避免:

    $_SERVER["PHP_SELF"] 可以通过 htmlspecialchars() 函数来避免被利用。

    htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。

    & (和号) 成为 &

    " (双引号) 成为 "

    ' (单引号) 成为 '

    < (小于) 成为 <

    > (大于) 成为 >


    例子:

    if ($_SERVER["REQUEST_METHOD"] == "POST")

    {

    if (empty($_POST["name"]))  //空值处理

    {

    $nameErr = "名字是必须的";

    }

    else

    {

    $name = myInput($_POST["name"]);

    }

    //接收数据并处理和赋值

    $email = myInput($_POST["email"]);

    $website = myInput($_POST["website"]);

    $comment = myInput($_POST["comment"]);

    $gender = myInput($_POST["gender"]);

    }

    //处理数据

    function myInput($data)

    {

    $newData = trim($data);  //去除空格和换行

    $newData = stripslashes($data); //去除反斜杠

    $newData = htmlspecialchars($data);  //转义函数

    return $newData; 

    }

    然后就OK啦,感觉萌萌哒(懵懵哒)~

    相关文章

      网友评论

        本文标题:PHP如何避免 $_SERVER["PHP_SELF&

        本文链接:https://www.haomeiwen.com/subject/ojzgettx.html