Security 为什么我要转换&;至&;amp;在XSS预防中?

Security 为什么我要转换&;至&;amp;在XSS预防中?,security,xss,websecurity,Security,Xss,Websecurity,最近我一直在思考我在标题中提到的一个问题 正如他们在规则1中建议的那样,在将用户输入插入HTML页面之前,应该进行一些HTML转义 但是,在下列情况下: 用户输入 如果我只转义4个字符:”,而不是&,是否有任何负载可能导致XSS?请注意,userInput中的“无法使属性关闭” 或者是否存在必须转义字符&的情况,否则将存在XSS漏洞?以下是您应该考虑的事项: 是 您可以看到&用于指示逃生点 因此,如果要输入&而不是&浏览器(解析器)可以将其视为一个转义点。 这就是为什么您需要使用&

最近我一直在思考我在标题中提到的一个问题

正如他们在规则1中建议的那样,在将用户输入插入HTML页面之前,应该进行一些HTML转义

但是,在下列情况下:

用户输入

如果我只转义4个字符:<>”,而不是&,是否有任何负载可能导致XSS?请注意,userInput中的“无法使属性关闭”


或者是否存在必须转义字符&的情况,否则将存在XSS漏洞?

以下是您应该考虑的事项:

您可以看到
&
用于指示逃生点

因此,如果要输入
&
而不是
&浏览器(解析器)可以将其视为一个转义点。

这就是为什么您需要使用
&而不是
&

感谢您的回复,但是我仍然无法确定是否存在允许用户输入字符的漏洞。这是一个逃逸点,但我认为它不能让注入新的标签或属性成为可能。还是我犯了什么错误?
&
没有打开任何xss漏洞。但是你应该逃避它来逃避逃犯。但是你应该在后端代码中考虑这个代码>和<代码>。假设您正在通过用户输入在系统上运行命令。因此,
whoami&&sudorm-rf/*
在这里是一种风险。逃跑和消毒是防止它的唯一方法。