Report-To

已弃用:此功能不再推荐使用。尽管某些浏览器可能仍支持它,但它可能已从相关的 Web 标准中删除,或者正在被弃用,或者仅出于兼容性目的而保留。请避免使用它,并尽可能更新现有代码;请参阅此页面底部的兼容性表格,以指导您的决策。请注意,此功能可能随时停止工作。

非标准:此功能是非标准的,并且不在标准轨道上。请勿在面向 Web 的生产网站上使用它:它不会对每个用户都起作用。不同实现之间也可能存在很大的不兼容性,并且行为在将来可能会发生变化。

警告:此标头已被 Reporting-Endpoints HTTP 响应标头取代。它是 Reporting API 规范早期版本的已弃用部分。

HTTP Report-To 响应标头 允许网站管理员定义命名的端点组,这些端点可用作警告和错误报告的目标,例如 CSP 违规报告、Cross-Origin-Opener-Policy 报告、弃用报告或其他通用违规。

Report-To 通常与其他选择一组端点以用于特定类型报告的标头一起使用。例如,Content-Security-Policy 标头的 report-to 指令可用于选择用于报告 CSP 违规的组。

标头类型 响应标头
禁止的标头名称
CORS 安全列表响应标头

语法

http
Report-To: <json-field-value>
<json-field-value>

一个或多个端点组定义,定义为一个 JSON 数组,省略了周围的 [] 标记。数组中的每个对象都具有以下属性

端点组的名称。

max_age

浏览器应缓存报告配置的时间(以秒为单位)。

端点

一个或多个 URL 数组,该组中的报告应发送到这些 URL。

示例

设置 CSP 违规报告端点

此示例显示服务器如何使用 Report-To 定义一组端点,然后将该组设置为发送 CSP 违规报告的位置。

首先,服务器可能会发送带有以下所示 Report-To HTTP 响应标头的响应。这指定了一组由组名称 csp-endpoints 标识的 url 端点。

http
Report-To: { "group": "csp-endpoints",
              "max_age": 10886400,
              "endpoints": [
                { "url": "https://example.com/reports" },
                { "url": "https://backup.com/reports" }
              ] }

然后,服务器可以通过将组名称设置为 report-to 指令的值来指定它希望将此组作为发送 CSP 违规报告的目标。

http
Content-Security-Policy: script-src https://example.com/; report-to csp-endpoints

给定上面的标头,任何 script-src CSP 违规都会导致违规报告发送到 Report-To 中列出的两个 url 值。

指定多个报告组

下面的示例演示了指定多个端点组的 Report-To 标头。请注意,每个组都有一个唯一的名称,并且这些组不受数组标记的限制。

http
Report-To: { "group": "csp-endpoint-1",
              "max_age": 10886400,
              "endpoints": [
                { "url": "https://example.com/csp-reports" }
              ] },
            { "group": "hpkp-endpoint",
              "max_age": 10886400,
              "endpoints": [
                { "url": "https://example.com/hpkp-reports" }
              ] }

我们可以通过名称选择一个端点组作为违规报告的目标,就像我们在前面的示例中所做的那样。

http
Content-Security-Policy: script-src https://example.com/; report-to csp-endpoint-1

规范

此标头不再是任何规范的一部分。它以前是 Reporting API 的一部分。

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅