最近我一直在思考一个问题,正如我在标题中提到的那样。
正如OWASP在他们的规则#1中建议的那样,在将用户输入插入HTML页面之前,应该先进行一些HTML转义。
但是,在以下情况下:
<标记> userInput< /标签>
< tag attribute =“userInput”>< / tag>
如果我只逃脱4个角色:< > “”,但不是&amp ;,是否有任何有效负载可能导致XSS?请注意,userInput中的& quot不能使属性关闭。
或者是否有任何字符&必须被转义,否则会存在XSS漏洞?
答案 0 :(得分:1)
您应该考虑以下事项:
<
为<
,>
为>
您可以看到&
用于指示转义点。
因此,如果您想要输入&
而不是&
浏览器(解析器),可能会将其视为转义点。
这就是您需要使用&
代替&
的原因。