PHP如何避免 $_SERVER["PHP_SELF"] 被黑客利用

$_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啦,感觉萌萌哒(懵懵哒)~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx阅读 12,593评论 0 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,768评论 19 139
  • PHP7 已经出来1年了,PHP7.1也即将和大家见面,这么多好的特性,好的方法,为什么不使用呢,也希望PHP越来...
    梦幻_78af阅读 6,401评论 1 10
  • 青年是美好的季节,青春是美丽的风景! 青年时代,随心所欲,无忧无虑,五彩缤纷,感情纯真,那份美好让人留恋,让人心动...
    一剪红梅阅读 2,895评论 0 1
  • 岁月过境时,我在等风来,山野的风,田野的风,。山野的风带有泉水涩涩的纯净,空谷幽荡的神秘。田野的风像个调皮的孩子,...
    念凛阅读 3,369评论 1 0