【问题标题】:Why is delivery of Content-Security-Policy via headers "preferred"?为什么“首选”通过标头传递 Content-Security-Policy?
【发布时间】:2019-09-24 05:22:00
【问题描述】:

3. CSP Policy Delivery 上面写着

Content-Security-Policy HTTP 响应头字段是传递策略的首选机制

但是有两种有效的机制,通过 HTTP 标头传递,以及通过 HTML meta 元素传递:

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

为什么“首选”通过标头传递,或者更重要的是,通过 HTML meta 标记传递的缺点是什么?

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

【问题讨论】:

  • stackoverflow.com/questions/42444106/… 是相关的,但没有解决这个问题。
  • 而且,继续评论我自己的问题,我意识到 http-equiv 元标记应该首先出现在标题中,因为它只适用于它后面的元素(所以也许这是一个原因“更喜欢”一个 http 标头...)
  • 那和元标记的限制根据注释。 “元元素内不支持 Content-Security-Policy-Report-Only 标头。report-uri、frame-ancestors 和沙盒指令也不支持。”
  • @Alohci 所说的。但是,如果使用 meta 元素而不是 HTTP 标头对您来说没有任何可观察到的问题,并且正如您所说的在部署中更容易管理,那么使用 HTTP 标头对您来说没有任何优势。特别是如果您没有使用 Content-Security-Policy-Report-Only 标头并且没有使用 report-uri、frame-ancestors 或沙盒指令,那么只需在每个文档中指定元元素而不是使用HTTP 标头。
  • @Alohci,如果您发表评论作为答案,我会接受它,因为它看起来合适。

标签: html http-headers content-security-policy websecurity http-equiv


【解决方案1】:

这个问题好像cmet里已经有答案了,但是没人有几分钟的时间来写回复,我自己试试吧。

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

但是,如果您不需要使用任何这些功能,则使用 HTTP 标头没有任何优势。

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

【讨论】:

    猜你喜欢
    • 2013-01-13
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多