php+防御+xss,PHP防御XSS攻击
XSS即跨站腳本工具
例如我在你的評論上寫了
然后很有可能就會彈出樓主傻逼了,當然這只是惡作劇,但要是別人在你的獲取cookie就很嚴重了,如下
通過這種方式,你的所有cookie就會被發送到對應的網站去,然后你就呵呵了~~~~
所以我們應該要過濾掉這些腳本,方法如下:(只能過濾部分)
// 注意:htmlentities()默認編碼為 ISO-8859-1,如果你的非法腳本編碼為其它,那么可能無法過濾掉,同時瀏覽器卻可以識別和執行.這個問題我先找幾個站點測試后再說.
// 以下是一個過濾非法腳本的函數,僅供參考: -->
function RemoveXSS($val) {
$val = preg_replace("/((\biframe\b)|(\bhref\b)|(\bsrc\b)|(\bvbscript\b)|(\bexpression\b)|(\bapplet\b)|(\bmeta\b)|(\bframeset\b))/i", "", $val);
$val = preg_replace("/
// straight replacements, the user should never need these since they"re normal characters
$search = "abcdefghijklmnopqrstuvwxyz";
$search .="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$search .= "1234567890!@#$%^&*()";
$search .= "~`;:?+/={}[]-_|\"";
for ($i = 0; $i < strlen($search); $i++) {
$val = preg_replace("/([x|X]0{0,8}".dechex(ord($search[$i])).";?)/i", $search[$i], $val); // with a ;
$val = preg_replace("/(�{0,8}".ord($search[$i]).";?)/", $search[$i], $val); // with a ;
}
// 剝去字符串中的 HTML 標簽:strip_tags
? ?$val = strip_tags(htmlspecialchars_decode($val));
? ?return $val;
}
//使用方法*********************************************************************
//*****************************************************************************
echo RemoveXss("我建議你去你那里玩http://www.baidu.com javascript hrefd iframe");
總結
以上是生活随笔為你收集整理的php+防御+xss,PHP防御XSS攻击的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle11g memory_tar
- 下一篇: oracle12数据库安装步骤,ORAC