在 html 编辑器中允许锚标记是否安全?



我允许 HTML 进入应用程序的一个文本区域,现在即将在客户端和服务器端验证中阻止某些 HTML 元素和属性。

我想知道允许锚<a>标签是否明智。我真的需要我的用户能够输入锚点。但是,我正在思考坏人对锚标签的所有滥用。

这是我想到的。

  1. 可以使用它执行外部脚本。对于 .e.g

    虚拟文本

  2. 流氓可以简单地从源域中执行我自己的一个 JS 函数。

    啧!

    Dummy text

当然,我可以通过确保所有内容都正确确定范围来缓解#2,但我只是出于一个好习惯而担心,即试图思考可能发生的所有邪恶事情,以便我可以将它们合并到我的代码/设计中。

还有其他方法可以滥用锚标签吗?

是的,在应用程序中允许 a 标记是安全的。 为了具体回答你的问题,你已经涵盖了大部分内容,但某个地方的某个人正在尝试新的问题。

使用最新的过滤库来绕过它,将缓解xss攻击链接

一旦输入格式正确(转义不受信任的数据(,请通过 HTML 解析器运行它。这将删除不在现有白名单上的任何内容。

你不需要自己写,有很多已经存在的链接,其他的可用。

附言建议您在服务器端而不是客户端进行过滤。 链接

最新更新