2014-04-02 89 views
2

我與我的一位同事就如何通過特定字符編碼防止XSS攻擊展開辯論。用&lt;轉義<字符會訣竅嗎?轉義<足以防範XSS攻擊

當我查看attack vector cheat sheet published by OWASP時,似乎所有攻擊都使用<字符作爲執行的基礎。

如果這不起作用,什麼攻擊會打敗它?

+0

簡短的答案是否定的,這是不夠的。漫長的答案取決於用戶數據所在的上下文。在一個屬性中,它肯定不會安全。在某些標籤的主體等... – ircmaxell

+0

用戶數據進入HTML元素的主體。屬性不是動態設置的。 – rynmrtn

+0

查看[XSS(Cross Site Scripting)預防備忘單](https://www.owasp.org/index.php/XSS_ \(Cross_Site_Scripting \)_Prevention_Cheat_Sheet),你會發現它並不足夠。這一切都取決於注射發生的環境。除此之外,還有基於DOM的XSS。 – Gumbo

回答

2

不,對於HTML正文,您還需要對&字符進行編碼,以防止攻擊者潛在逃脫逃逸。

退房的XSS Experimental Minimal Encoding Rules: -

HTML正文(最多HTML 4.01):

  • HTML實體編碼< &

  • 指定元標記,以避免UTF7字符​​集XSS

XHTML身體:

注意,如果你想進入一個屬性裏面的東西值,那麼你需要正確編碼所有字符無線特別的意義。該XSS (Cross Site Scripting) Prevention Cheat Sheet提及對編碼如下字符: -

&<>"'/

您還必須引用屬性值是有效的逃逸。

+0

會愛了解可以使用'&'字符執行哪些攻擊。 – rynmrtn

+2

@rynmrtn:看看過濾器逃避作弊表,你發佈了一個鏈接到你的問題。''是一個。如果你的應用程序生成'IMG'標籤,並且'SRC'由用戶輸入設置,這將是有效的。 – SilverlightFox