首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery删除脚本标记是否足以防止XSS攻击?

问使用jquery删除脚本标记是否足以防止XSS攻击?
EN

Stack Overflow用户
提问于 2018-11-22 09:12:56
回答 1查看 2.1K关注 0票数 1

我们使用WYSWIG编辑器(Froala编辑器)并存储用户创建的原始HTML。因此,转义字符串不是一个选项。我打算将HTML字符串存储在引号中的变量或数据属性中。然后,读取该HTML并使用jquery的parseHTML删除脚本标记,并在将该HTML加载到编辑器之前只保留某些属性。这种方法是否足以防止所有XSS攻击?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-22 11:41:15

事实并非如此。以下是一些反例:

  • <a href="javascript:alert(1)">
  • <div onclick="alert(1)">
  • <img src="javascript:alert(1)"> (在现代浏览器中实际上不再起作用)
  • <div style="background-image: url(javascript:alert(1))"> (不再起作用)

部分困难在于它还取决于用户使用的浏览器。底线是,你需要一个适当的消毒液,这也可以在客户端。(它也可以在服务器上,但考虑编辑器的“预览”功能,如果有任何预览,如果没有将预览发送到服务器,服务器端的消毒液就没有多大用处。*)

Google Caja是(曾经?)一个html清理程序项目,也有一个纯javascript组件。有其他解决方案也是。

请注意,编辑器javascript必须支持在将其插入DOM之前通过自定义清除器运行其内容,如果要在javascript中这样做的话。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53427381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档