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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值