当我有两个 CSP(内容安全策略)策略 - 标头和元时会发生啥?

Posted

技术标签:

【中文标题】当我有两个 CSP(内容安全策略)策略 - 标头和元时会发生啥?【英文标题】:What is happening when I have two CSP (Content Security Policies) policies - header & meta?当我有两个 CSP(内容安全策略)策略 - 标头和元时会发生什么? 【发布时间】:2018-12-11 10:31:38 【问题描述】:

问题是关于 CSP 服务两次:

如果有一个通过Content-Security-Policy HTTP 响应标头提供的策略以及另一个通过<meta /> 元素指定的策略,会发生什么行为?

这两者会以某种方式合并吗?或者哪个优先? (我在规范中找不到明确的信息)。

特定用例可能是通过 HTTP 响应标头提供 Report-to 并将所有其他限制放在 <meta /> 元素中 - 因为其中一些是由 webpack 生成的 - 如果我不应该担心 <meta />被 HTTP 响应标头策略淡化。

【问题讨论】:

【参考方案1】:

如果您在 Content-Security-Policy HTTP 标头和 meta 元素中都指定了 CSP 指令,则浏览器将使用限制性最强的 CSP 指令,无论在何处指定。

在https://w3c.github.io/webappsec-csp/#multiple-policies 上查看多个策略的详细信息,在https://w3c.github.io/webappsec-csp/#meta-element 上查看有关使用meta 元素的详细信息:

通过meta 元素指定的策略将被强制执行 任何其他对受保护资源有效的策略,无论 指定它们的位置。强制执行多个的一般影响 §8.1 多个策略的影响中描述了策略。

8.1。多重政策的影响

影响是向政策列表中添加其他政策 强制执行只能进一步限制受保护资源的能力。

【讨论】:

以上是关于当我有两个 CSP(内容安全策略)策略 - 标头和元时会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security配置内容安全策略

为啥 CSP 安全标头会阻止 Iphone 上的谷歌地图?

内容安全策略多重随机数

NUXT的SPA模式可以设置内容安全策略吗

[转帖]内容安全策略(CSP)详解

内容安全策略 (csp) 随机数:随机数应该多长时间或多复杂