首页 > 解决方案 > Content-Security-Policy 标头是否仅适用于 text/html Content-Type?

问题描述

从 OWASP 的网站 https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html

从您的 Web 服务器发送 Content-Security-Policy HTTP 响应标头。

内容安全策略:...

使用标头是首选方式,并且支持完整的 CSP 功能集。在所有 HTTP 响应中发送它,而不仅仅是索引页面。

我不明白这怎么可能是真的,因为可以通过在 HTML 中使用元标记来设置 Content-Security-Policy。我也看不出该政策如何适用于 HTML 页面以外的任何其他内容。

有谁知道为什么要做出上述声明以及仅发送 HTTP 标头Content-Security-Policy进行text/html响应是否安全?

顺便说一句,策略太大了,我想发送尽可能少的字节。

标签: httphttp-headerscontent-security-policyhttp-protocols

解决方案


这仍然是没有正式指定的东西,对此仍有一些争论:https ://github.com/w3c/webappsec/issues/520

一般来说,这里有两个论点:

一方面,其他一些文件类型(XML、PDF,甚至可能是 SVG)可以从 CSP 中受益,并且任何资源都可以通过右键单击并在单独的选项卡中打开来成为页面。

另一方面,CSP 可能会变得非常大,并且通常是为 HTML 页面编写的。所以发送其他资源有点浪费,而且大部分都不相关。

正确的答案(如上所述)可能是对所有非 HTML 响应减少且非常严格的 CSP。

但我认为对于大多数人来说,仅将它放在 HTML 上就足够了,并带来了 CSP 的大部分好处。再一次,CSP 是一种先进的技术,所以如果能做到这一点,那为什么不正确地做呢?


推荐阅读