Content-Security-Policy-Report-Only

Content-Security-Policy-Report-Only

HTTP Content-Security-Policy-Report-Only响应头允许Web开发人员通过监视(但不强制执行)其效果来实验策略。这些违规报告由通过HTTP 请求发送到指定URI 的JSON文档组成POST

有关更多信息,另请参阅本文有关内容安全策略(CSP)的文章。

标题类型响应标题
禁止标题名称没有

| This header is not supported inside a <meta> element. |

句法

Content-Security-Policy-Report-Only: <policy-directive>; <policy-directive>

指令

Content-Security-Policy标题的指令也可以应用于Content-Security-Policy-Report-Only

CSP report-uri指令应该与这个标题一起使用,否则这个标题将是一个昂贵的不操作机器。

示例

标题报告可能发生的违规行为。您可以使用它来反复处理您的内容安全策略。您可以观察您的网站的行为,监视违规报告,然后选择Content-Security-Policy标题实施的所需策略。

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

如果您仍然希望接收报告,但也希望强制执行策略,请在report-uri指令中使用Content-Security-Policy标题。

Content-Security-Policy: default-src https:; report-uri /csp-violation-report-endpoint/

违规报告语法

报告JSON对象包含以下数据:

document-uri发生违规的文档的URI。

示例违规报告

让我们考虑一个位于http://example.com/signup.html的页面。它使用以下策略,禁止除了样式表之外的所有内容cdn.example.com

Content-Security-Policy-Report-Only: default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports

HTML的signup.html外观如下所示:

<!DOCTYPE html> <html> <head> <title>Sign Up</title> <link rel="stylesheet" href="css/style.css"> </head> <body> ... Content ... </body> </html>

你能发现违规行为吗?样式表只允许加载cdn.example.com,但网站尝试从它自己的原点加载一个(http://example.com)。能够执行CSP的浏览器将下列违规报告作为POST请求发送至http://example.com/_/csp-reports访问文档时:

{ "csp-report": { "document-uri": "http://example.com/signup.html", "referrer": "", "blocked-uri": "http://example.com/css/style.css", "violated-directive": "style-src cdn.example.com", "original-policy": "default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports", "disposition": "report" } }

正如您所看到的,报告包含违规资源的完整路径blocked-uri。这并非总是如此。例如,当signup.html试图从中加载CSS时http://anothercdn.example.com/stylesheet.css,浏览器将包含完整路径,而只包含origin(http://anothercdn.example.com)。这是为了防止泄露有关跨源资源的敏感信息。

产品规格

规范状态评论
内容安全策略3级编辑草稿没有变化。
内容安全策略2级建议初始定义。

浏览器兼容性

FeatureChromeFirefoxEdgeInternet ExplorerOperaSafari
Basic Support2523.01410157

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support4.4(Yes)(Yes)23.0??7.1

另请参阅

  • Content-Security-Policy

  • CSP report-uri directive

Edit this page on MDN