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 字符集(显然)。