我與我的一位同事就如何通過特定字符編碼防止XSS攻擊展開辯論。用<
轉義<
字符會訣竅嗎?轉義<足以防範XSS攻擊
當我查看attack vector cheat sheet published by OWASP時,似乎所有攻擊都使用<
字符作爲執行的基礎。
如果這不起作用,什麼攻擊會打敗它?
我與我的一位同事就如何通過特定字符編碼防止XSS攻擊展開辯論。用<
轉義<
字符會訣竅嗎?轉義<足以防範XSS攻擊
當我查看attack vector cheat sheet published by OWASP時,似乎所有攻擊都使用<
字符作爲執行的基礎。
如果這不起作用,什麼攻擊會打敗它?
不,對於HTML正文,您還需要對&
字符進行編碼,以防止攻擊者潛在逃脫逃逸。
退房的XSS Experimental Minimal Encoding Rules: -
HTML正文(最多HTML 4.01):
HTML實體編碼
< &
指定元標記,以避免UTF7字符集XSS
XHTML身體:
HTML實體編碼
< & >
限制輸入到charset http://www.w3.org/TR/2008/REC-xml-20081126/#charsets
注意,如果你想進入一個屬性裏面的東西值,那麼你需要正確編碼所有字符無線特別的意義。該XSS (Cross Site Scripting) Prevention Cheat Sheet提及對編碼如下字符: -
&
,<
,>
,"
,'
,/
您還必須引用屬性值是有效的逃逸。
會愛了解可以使用'&'字符執行哪些攻擊。 – rynmrtn
@rynmrtn:看看過濾器逃避作弊表,你發佈了一個鏈接到你的問題。''是一個。如果你的應用程序生成'IMG'標籤,並且'SRC'由用戶輸入設置,這將是有效的。 – SilverlightFox
簡短的答案是否定的,這是不夠的。漫長的答案取決於用戶數據所在的上下文。在一個屬性中,它肯定不會安全。在某些標籤的主體等... – ircmaxell
用戶數據進入HTML元素的主體。屬性不是動態設置的。 – rynmrtn
查看[XSS(Cross Site Scripting)預防備忘單](https://www.owasp.org/index.php/XSS_ \(Cross_Site_Scripting \)_Prevention_Cheat_Sheet),你會發現它並不足夠。這一切都取決於注射發生的環境。除此之外,還有基於DOM的XSS。 – Gumbo