XSS - 是否可以通过删除“<”来清理用户输入?
XSS - It is possible to sanitise user input by removing "<"?
在前端,是否可以通过从用户内容中删除 <
来捕获所有 XSS 攻击?这似乎是一种禁用恶意代码的简单方法,目前我没有需要保留 <
的用例。这在所有情况下都有效吗?
我显示用户内容的方式始终是内部 html,例如
<div>{USER CONTENT}</div>
取决于您在哪里使用用户输入。
如果你在 a href=
中使用它,那么:不!
<a href="{{linkFromUser}}">
然后可能是 javascript:alert('oh no');
如果按下 link,浏览器 将 在您的页面上下文中执行它。
澄清一下,答案在已接受答案的评论中。
Lux 友情链接 document 确认类似的实体编码方法 <
足以防止脚本 运行 inside inner html 内容(这几乎回答了我的问题)。然而 &
也需要编码并且应该避免 UTF7 XSS
字符集(显然)。
在前端,是否可以通过从用户内容中删除 <
来捕获所有 XSS 攻击?这似乎是一种禁用恶意代码的简单方法,目前我没有需要保留 <
的用例。这在所有情况下都有效吗?
我显示用户内容的方式始终是内部 html,例如
<div>{USER CONTENT}</div>
取决于您在哪里使用用户输入。
如果你在 a href=
中使用它,那么:不!
<a href="{{linkFromUser}}">
然后可能是 javascript:alert('oh no');
如果按下 link,浏览器 将 在您的页面上下文中执行它。
澄清一下,答案在已接受答案的评论中。
Lux 友情链接 document 确认类似的实体编码方法 <
足以防止脚本 运行 inside inner html 内容(这几乎回答了我的问题)。然而 &
也需要编码并且应该避免 UTF7 XSS
字符集(显然)。