在HTML编辑器中允许使用锚标记是否安全?

时间:2018-08-26 07:41:12

标签: javascript html security websecurity

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

我想知道允许使用锚点<a>标签是否明智。我确实需要我的用户能够输入锚点。但是,我正在考虑,坏人可能会滥用锚标签。

这就是我想出的。

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

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

  2. 流氓可以仅在源域中执行我自己的JS函数之一。

    Gotchya!

    虚拟文字

当然,我可以通过确保所有内容都在适当范围内来缓解#2的问题,但我只是出于一种良好的习惯而担心,试图考虑可能发生的所有不良事件,以便将其合并到我的代码/设计中。

有人还能通过其他方式滥用锚标签吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

您不必自己编写,link已经存在很多,还有其他可用。

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