function filter($p){
$i=0;
return str_replace("<","<",str_replace(">",">",str_replace("&","&",$p,$i),$i),$i);
}
任何想法通過這個xss預防? 只是我的想法,不做作業通過此過濾器的XSS攻擊?
function filter($p){
$i=0;
return str_replace("<","<",str_replace(">",">",str_replace("&","&",$p,$i),$i),$i);
}
任何想法通過這個xss預防? 只是我的想法,不做作業通過此過濾器的XSS攻擊?
正如問題勘誤中提出的,這裏的問題在於你試圖在PHP中推出自己的替代品htmlspecialchars
。儘管您已經要求進行現場代碼審查以修復潛在的XSS exploit,但實際上您已經在應用程序中指出了處理漏洞的方式。
雖然你似乎是試圖做(注this answer about black- and white-lists),您可以進行反覆的修正或輸入模式殺毒,您將得到更好的閱讀this documentation on how to address and mitigate XSS exploits和this additional documentation服務。它應該提供有關審查和重新構建您的應用程序的指導,以便乾淨而安全地處理這些威脅,而不是通過代碼中的多個修復程序來減輕您的緩解策略。
祝您好運與您的申請!
千萬不要使用黑名單。始終使用白名單。關於大量不同的攻擊的Read for example here。發人深省的:)
可能。例如,如果filter
是內使用一個HTML標籤,就像這樣:
<input type="text" value="<?=filter($p)?>">
,攻擊者可能會被強迫$p
執行XSS攻擊應運而生類似:
something" onfocus="javascript:alert('test')
所以輸出HTML變爲:
<input type="text" value="something" onfocus="javascript:alert('test')">
爲什麼不直接使用htmlspecialchars()? – 2012-04-01 21:45:45
假設編碼器是noob,他不知道htmlspecialchar():D 我不談論如何預防,我想知道如何攻擊:D – n0b0dybk 2012-04-01 21:50:48
Offtopic - 這個網站是不是審查代碼。這就是http://codereview.stackexchange.com/的用途。但作爲一般規則,不要推出自己的「安全」代碼。除非你是專家,否則總會有一個或多個邊緣案例讓你的代碼泄露。 – 2012-04-01 21:53:09