是否有任何理由使用安全性较低的内容安全策略 (CSP)?

Is there any reason to ever use a less secured content security policy(CSP)?

我正在了解内容安全政策。

假设我的网站 abc.com 有以下 csp:

default-src 'self' 'unsafe-inline' 'unsafe-eval' xyz.com

这是否意味着它将使用来自 xyz.com 的 csp 源?

如果我将其更改为:

default-src 'self'

如果第一个更安全,有没有理由使用更简单的一个?换句话说,拥有更安全的 csp 不是更好吗?

谢谢

default-src 'self' 'unsafe-inline' 'unsafe-eval' xyz.com

Does this mean that it will use the source of csp from xyz.com?

'self'

指提供受保护文档的来源,包括相同的 URL 方案和端口号。

'unsafe-inline'

允许使用内联资源,例如内联 <script> 元素、javascript: URL、内联事件处理程序和内联 <style> 元素。

'unsafe-eval'

允许使用 eval() 和类似方法从字符串创建代码。

xyz.com

允许来自 'xyz.com' 主机的内容。 (见源码下host-source

来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src


第二个 CSP 比第一个更严格。它只允许来自同一来源的内容。

我建议阅读 this documentation 以更好地了解 CSP 的用途以及如何最有效地使用它们。

您的第二个选项更安全,但要允许内联脚本,您可以使用 nonce 或 SHA256。

有关详细信息,您可以访问给定的链接。

https://developers.google.com/web/fundamentals/security/csp/#if_you_absolutely_must_use_it

https://csp.withgoogle.com/docs/adopting-csp.html#refactor-inline-event-handlers-and-javascript-uris