为什么 Content-Security-Policy 通过 headers "preferred" 交付?

Why is delivery of Content-Security-Policy via headers "preferred"?

3. CSP Policy Delivery 它说

The Content-Security-Policy HTTP response header field is the preferred mechanism for delivering a policy

但是有两种有效机制,通过 HTTP header 传送,以及通过 HTML meta 元素传送:

<meta http-equiv="Content-Security-Policy" content="..."/>

为什么要通过 header "preferred" 交付,或者更重要的是,通过 HTML meta 标签交付的缺点是什么?

出于各种原因,在我们的部署中,将 CSP 添加到 HTML 头部更易于管理。

看来这个问题在评论里已经回答过了,但是没人有时间写回复,我自己试试

Content-Security-Policy 与通过 HTML 元元素传送相比,通过 HTTP 响应传送支持一些额外的功能,例如 Content-Security-Policy-Report-Onlyreport-uriframe-ancestors沙盒指令.

但是,如果您不需要使用这些功能中的任何一个,则使用 HTTP header 没有任何优势。

请注意,使用 HMTL 方式时,http-equiv 元标记应首先出现在 header 中,因为它仅适用于其后的元素。

在大型组织中,负责设置 CSP 的人员与负责网页内容的人员不同。当应用多个策略时,它们必须全部执行。开发人员(通过元数据)不能放宽系统管理员制定的策略(通过 http 响应)。安全负担从所有开发人员转移到有限的管理员组。