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

Is it safe to allow an anchor tag in an html editor?

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

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

这是我的想法。

  1. 可以使用它执行外部脚本。例如

    http://external/website/js/function">虚拟文本

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

    明白了!

    虚拟文本

当然,我可以通过确保一切都在适当的范围内来减轻#2,但我只是出于一个好习惯而担心,即尝试考虑可能发生的所有邪恶事情,以便我可以将它们合并到我的代码中/设计.

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

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

要绕过它,使用最新的过滤库将减轻 xss 攻击link

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

您不必自己编写,已经有很多 link,其他的也可用。

P.S。建议您在服务器端而不是客户端进行过滤。 link