2015-7-18 22:02:21
PHP表單中需引起注重的地方?
$_SERVER["PHP_SELF"] 變量有可能會被黑客使用!
當黑 客使用跨網站腳本的HTTP鏈接來攻擊時,$_SERVER["PHP_SELF"]服務器變量也會被植入腳本。原因就是跨網站腳本是附在執行文件的路徑 后面的,因此$_SERVER["PHP_SELF"]的字符串就會包含HTTP鏈接后面的JavaScript程序代碼。
![]() |
XSS又叫 CSS (Cross-Site Script) ,跨站腳本攻擊。惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意用戶的特殊目的。 |
---|
指定以下表單文件名為 "test_form.php":
現在,我們使用URL來指定提交地址 "http://www.w3cschool.cc/test_form.php",以上代碼修改為如下所示:
這樣做就很好了。
但是,考慮到用戶會在瀏覽器地址欄中輸入以下地址:
In this case, the above code will be translated to:
代碼中添加了 script 標簽,並添加了alert命令。 當頁面載入時會執行該Javascript代碼(用戶會看到彈出框)。 這僅僅只是一個簡單的實例來說明PHP_SELF變量會被黑客利用。
請注意, 任何JavaScript代碼可以添加在<script>標簽中! 黑客可以利用這點重定向頁面到另外一台服務器的頁面上,頁面 代碼文件中可以保護惡意代碼,代碼可以修改全局變量或者獲取用戶的表單數據,實例:
如何避免 $_SERVER["PHP_SELF"] 被利用?
$_SERVER["PHP_SELF"] 可以通過 htmlspecialchars() 函數來避免被利用。
form 代碼如下所示:
htmlspecialchars() 把一些預定義的字符轉換為 HTML 實體。現在如果用戶想利用 PHP_SELF 變量, 結果將輸出如下所示:
嘗試該漏洞失敗!