【问题标题】:XSS - It is possible to sanitise user input by removing "<"?XSS - 可以通过删除“<”来清理用户输入吗?
【发布时间】:2020-05-28 16:15:16
【问题描述】:

在前端是否可以通过从用户内容中删除 &lt; 来捕获所有 XSS 攻击?这似乎是一种禁用恶意代码的简单方法,目前我没有需要保留&lt; 的用例。这是否适用于所有情况?

我显示用户内容的方式始终是内部 html,例如

<div>{USER CONTENT}</div>

【问题讨论】:

  • 您也可以转义字符,具体取决于您放置值的位置

标签: javascript xss sanitization html-sanitizing


【解决方案1】:

取决于您在哪里使用用户输入。

如果你在 a href= 中使用它,那么好吧:不!

<a href="{{linkFromUser}}">

然后可能是javascript:alert('oh no');

如果链接被按下,浏览器在您的页面上下文中执行它。

【讨论】:

  • 好的,谢谢。我更新了我的问题以澄清我的预期用途。
  • 看看here。确保不使用 UTF7 并转义 &amp;
  • 不错的一个。我认为这回答了我的问题。
【解决方案2】:

为了澄清,答案在已接受答案的评论中

Lux 友情链接document,确认类似的实体编码方法&lt; 足以防止脚本在内部html 内容中运行(这几乎回答了我的问题)。但是&amp; 也需要编码,并且应该避免使用UTF7 XSS 字符集(显然)。

【讨论】:

    猜你喜欢
    • 2015-07-29
    • 1970-01-01
    • 2021-02-22
    • 2010-12-07
    • 2014-04-21
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多