我正在与一位同事争论如何通过特定字符的编码来防止 XSS 攻击。将逃脱<
字符 <
做这件事吗?
当我查看attack vector cheat sheet published by OWASP时,似乎所有攻击都使用 <
品格作为执行的基础。
如果这不起作用,什么攻击可以打败它?
最佳答案
不,对于 HTML 正文,您还需要对 &
进行编码字符以防止攻击者潜在地逃脱转义。
查看 XSS Experimental Minimal Encoding Rules :-
HTML Body (up to HTML 4.01):
HTML Entity encode
< &
specify charset in metatag to avoid UTF7 XSS
XHTML Body:
HTML Entity encode
< & >
limit input to charset http://www.w3.org/TR/2008/REC-xml-20081126/#charsets
请注意,如果您想在属性值中输入内容,则需要对所有具有特殊含义的字符进行正确编码。 XSS (Cross Site Scripting) Prevention Cheat Sheet提到对以下字符进行编码:-
&
,<
,>
,"
,'
,/
您还必须引用属性值才能使转义生效。
关于security - 转义 < 足以防止 XSS 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799576/