天天看點

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

$_SERVER["PHP_SELF"]是超級全局變量,傳回目前正在執行腳本的檔案名,與 document root相關。

當黑客使用跨網站腳本的HTTP連結來攻擊時,$_SERVER["PHP_SELF"]伺服器變量也會被植入腳本。原因就是跨網站腳本是附在執行檔案的路徑後面的,是以$_SERVER["PHP_SELF"]的字元串就會包含HTTP連結後面的JavaScript程式代碼。

如何避免:

$_SERVER["PHP_SELF"] 可以通過 htmlspecialchars() 函數來避免被利用。

htmlspecialchars() 函數把一些預定義的字元轉換為 HTML 實體。

& (和号) 成為 &

" (雙引号) 成為 "

' (單引号) 成為 '

< (小于) 成為 <

> (大于) 成為 >

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

例子:

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