Report-To 标头

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

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

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

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

头类型 响应头
禁止请求头
CORS-safelisted 响应头

语法

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

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

group

端点组的名称。

max_age

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

endpoints

一个或多个 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 的一部分。

浏览器兼容性

另见