我和我的一位同事讨论了如何通过编码特定字符来防止XSS攻击。使用<
转义<
字符是否可以解决问题?
当我查看attack vector cheat sheet published by OWASP时,似乎所有攻击都使用<
字符作为执行的基础。
如果这不起作用,什么攻击会击败它?
答案 0 :(得分:2)
不,对于HTML正文,您还需要对&
字符进行编码,以防止攻击者逃脱逃逸。
查看XSS Experimental Minimal Encoding Rules: -
HTML正文(最高为HTML 4.01):
HTML实体编码
< &
在metatag中指定charset以避免使用UTF7 XSS
XHTML正文:
HTML实体编码
< & >
- 的输入
限制对charset http://www.w3.org/TR/2008/REC-xml-20081126/#charsets
请注意,如果要在属性值中输入内容,则需要对具有特殊含义的所有字符进行正确编码。 XSS (Cross Site Scripting) Prevention Cheat Sheet提及对以下字符进行编码: -
&
,<
,>
,"
,'
,/
您还必须引用转义的属性值才能生效。