首页 > 解决方案 > 内容安全策略 (CSP) 标头:在每个文件上还是仅在实际的 HTML 页面上?

问题描述

我目前正在将内容安全策略 (CSP) 标头添加到我们的应用程序中。我想知道标题必须附加到哪些文件。经过一番研究,我没有找到明确的答案。

Twitter,例如,仅将其添加到实际的 HTML 文档中。然而,Facebook 将它添加到几乎所有资源和 HTML 文档(HTML、JS、CSS 等)中。

那么,是否有必要将 Content Security Policy 标头添加到每个提供的资源文件或仅添加到 HTML 文档中?它如何处理 Ajax(JSON 内容)请求?它如何与 SPA(仅index.html文件或所有资源)一起使用?如果从安全角度来看没有必要,我不想通过向每个文件添加长 CSP 标头来减慢页面速度。

编辑:

澄清一下:当附加了 CSP 标头时,浏览器是否会以不同的方式处理图像或其他非文档资源?

标签: content-security-policy

解决方案


我的问题的正确答案是对另一个类似问题的回答。它引用了 CSP 规范,该规范明确指出,该策略仅影响创建新“执行上下文”的资源。这意味着,无需将 CSP 添加到不应由浏览器打开的 REST API 响应中。请参考正确答案或直接参考W3 的规范,其中还包括一个如何处理不同资源(例如脚本、图像等)的表格。


推荐阅读