内容安全策略报告仅

HTTP Content-Security-Policy-Report-Only 响应头允许 Web 开发者发送 CSP 违规报告,以便通过监控(但不强制执行)其效果来试验策略。这允许在测试期间快速捕获和修复 CSP 违规。

Content-Security-Policy-Report-Only 的使用方式与 Content-Security-Policy 相同,但不会强制执行违规。必须指定 CSP report-to 指令才能发送报告:如果不指定,操作将没有任何效果。

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

有关更多信息,请参阅我们的 Content Security Policy (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 标头的指令也可以应用于 Content-Security-Policy-Report-Only,但 sandbox 指令除外,该指令将被忽略。

CSP report-to 指令应与该标头一起使用,否则将无效。

示例

要使用 report-to 指令,您首先需要使用 Reporting-Endpoints HTTP 响应头定义相应的端点。在下面的示例中,我们定义了一个名为 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 尚未获得完全的跨浏览器支持。

规范

规范
Content Security Policy Level 3
# cspro-header

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见