content-security-policy - 内容安全策略 (CSP) 标头:在每个文件上还是仅在实际的 HTML 页面上?
问题描述
我目前正在将内容安全策略 (CSP) 标头添加到我们的应用程序中。我想知道标题必须附加到哪些文件。经过一番研究,我没有找到明确的答案。
Twitter,例如,仅将其添加到实际的 HTML 文档中。然而,Facebook 将它添加到几乎所有资源和 HTML 文档(HTML、JS、CSS 等)中。
那么,是否有必要将 Content Security Policy 标头添加到每个提供的资源文件或仅添加到 HTML 文档中?它如何处理 Ajax(JSON 内容)请求?它如何与 SPA(仅index.html
文件或所有资源)一起使用?如果从安全角度来看没有必要,我不想通过向每个文件添加长 CSP 标头来减慢页面速度。
编辑:
澄清一下:当附加了 CSP 标头时,浏览器是否会以不同的方式处理图像或其他非文档资源?
解决方案
我的问题的正确答案是对另一个类似问题的回答。它引用了 CSP 规范,该规范明确指出,该策略仅影响创建新“执行上下文”的资源。这意味着,无需将 CSP 添加到不应由浏览器打开的 REST API 响应中。请参考正确答案或直接参考W3 的规范,其中还包括一个如何处理不同资源(例如脚本、图像等)的表格。
推荐阅读
- java - 如何使用 JavaMail 发送电子邮件 Multipart?
- java - android项目中的日期格式
- c# - 如何使用机器人框架在 AAD 登录后获取用户的电子邮件 ID
- html - 伪类在 css 文件中不起作用,元素标签也不起作用
- angular6 - 禁用下一个字段,直到选择上一个
- php - 使用 GuzzleHttp 使用 API 端点时出错
- r - 要替换的项目数不是权重中替换长度的倍数
- html - 如何上传包含所有完整路径的文件?
- angular - Angular 5 Route - 特殊字符在自定义路线中不起作用
- apache-spark - 当有多个嵌套字段时,Pyspark Dataframe 连接错误