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

Django 使用jquery parseHTML删除脚本标记是否足以防止XSS攻击?,django,security,xss,wysiwyg,froala,Django,Security,Xss,Wysiwyg,Froala,我们正在使用WYSWIG编辑器(Froala编辑器)并存储用户创建的原始HTML。因此,转义字符串不是一个选项。我打算将HTML字符串存储在一个变量或一个包含在引号内的数据属性中。然后,在将HTML加载到编辑器之前,读取该HTML字符串并使用jquery的parseHTML删除脚本标记,并且只保留某些属性。这种方法足以防止所有XSS攻击吗?事实并非如此。 几个反例: 解决方案 请注意,如果您想在javascript中执行此操作,javascript编辑器必须支持在将其插入DOM之前通过自定义消

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

事实并非如此。 几个反例:

  • 解决方案


    请注意,如果您想在javascript中执行此操作,javascript编辑器必须支持在将其插入DOM之前通过自定义消毒器运行其内容。

    我认为现代浏览器不支持这种说法并不一定正确。到目前为止,它取决于从服务器发送的http头指令和mime类型。我知道,因为我有一个应用程序依赖于此,它可以在所有现代浏览器中正常工作,但如果我们设置适当的http头策略,它就会崩溃。在新的Windows IIS安装中,它将开箱即用。@VanquishedWombat谢谢你,那时我可能错了。我不确定哪些浏览器的响应头支持此功能,但现在如果我有半小时的空闲时间,我将尝试使用此功能。:)