Content-Security-Policy-Report-Only 头部

Baseline 已广泛支持

此功能已相当成熟,可在多种设备和浏览器版本上运行。自 ⁨2016 年 8 月⁩ 起,所有浏览器均已提供此功能。

HTTP Content-Security-Policy-Report-Only 响应头部有助于监控内容安全策略 (CSP) 违规及其影响,而无需强制执行安全策略。此头部允许你在应用和强制执行特定 Content-Security-Policy 之前测试或修复违规行为。

要发送报告,必须指定 CSP report-to 指令:如果未指定,则操作将不起作用。

违规报告使用 Reporting API 发送,发送到在 Reporting-Endpoints HTTP 响应头部中定义的端点,并通过 CSP report-to 指令选择。

有关更多信息,请参阅我们的 内容安全策略 (CSP) 指南。

注意:此头部也可以与已废弃的 report-uri 指令一起使用(该指令正在被 report-to 替换)。用法和生成的报告语法略有不同;有关更多详细信息,请参阅 report-uri 主题。

头类型 响应头
禁止请求头
此头部不支持在 <meta> 元素中使用。

语法

http
Content-Security-Policy-Report-Only: <policy-directive>; …; <policy-directive>; report-to <endpoint-name>

指令

Content-Security-Policy-Report-Only 头部支持所有 Content-Security-Policy 指令,但 sandbox 除外,该指令将被忽略。

注意:此头部应与 CSP report-to 指令一起使用,否则将不起作用。

示例

使用 Content-Security-Policy-Report-Only 发送 CSP 报告

要使用 report-to 指令,你需要首先使用 Reporting-Endpoints 响应头部定义一个相应的端点。在下面的示例中,我们定义了一个名为 csp-endpoint 的单一端点。

http
Reporting-Endpoints: csp-endpoint="https://example.com/csp-reports"

然后我们可以使用 report-toreport-uri 定义报告的目的地,如下所示。请注意,如果页面不安全地加载资源或从内联代码加载,则会触发此特定报告。

http
Content-Security-Policy-Report-Only: default-src https:;
  report-uri /csp-report-url/;
  report-to csp-endpoint;

注意:report-to 指令优于已废弃的 report-uri,但我们同时声明两者,因为 report-to 尚未获得完整的跨浏览器支持。

规范

规范
内容安全策略级别 3
# cspro-头部

浏览器兼容性

另见