如何实现多个Content-Security-Policies和标头?

时间:2015-04-06 11:36:54

标签: javascript html security xss content-security-policy

我有一个与电子邮件相关的应用程序,我希望通过附件阻止JavaScript中的警报。例如,我已经实现了以下CSP标题:

Header Set Content-Security-Policy "script-src http://192.168.0.1/trusted/ 'unsafe-inline' 'unsafe-eval';" 

此政策会阻止来自外部来源的提醒,但代码如& ltscript> alert(123)& lt / script>'如果我通过应用程序将HTML文档作为附件发送,则执行。我无法更改代码并将所有JavaScript代码从HTML页面移动到另一个'.js'文件。这将是非常耗时的过程。 有什么方法可以解决这个问题吗?如果我实现多个标头,则会导致冲突。

此外,我还在考虑使用别名来允许来自另一个IP的受信任代码,例如192.168.0.2/trusted/,但这有用吗?

1 个答案:

答案 0 :(得分:0)

您可以在sandboxed iframe中显示附件中的HTML。它具有以下优点:

  • 沙箱本身可以减少附件中任何恶意代码的影响,
  • 您可以为iframe网址设置单独的CSP标头,它不会影响您需要允许内嵌代码的外部HTML。