?
This document uses PHP Chinese website manual Release
HTTP Content-Security-Policy-Report-Only
響應(yīng)頭允許Web開發(fā)人員通過監(jiān)視(但不強(qiáng)制執(zhí)行)其效果來實(shí)驗(yàn)策略。這些違規(guī)報(bào)告由通過HTTP 請求發(fā)送到指定URI 的JSON文檔組成POST
。
有關(guān)更多信息,另請參閱本文有關(guān)內(nèi)容安全策略(CSP)的文章。
標(biāo)題類型 | 響應(yīng)標(biāo)題 |
---|---|
禁止標(biāo)題名稱 | 沒有 |
| This header is not supported inside a <meta> element. |
Content-Security-Policy-Report-Only: <policy-directive>; <policy-directive>
Content-Security-Policy
標(biāo)題的指令也可以應(yīng)用于Content-Security-Policy-Report-Only
。
CSP report-uri
指令應(yīng)該與這個標(biāo)題一起使用,否則這個標(biāo)題將是一個昂貴的不操作機(jī)器。
標(biāo)題報(bào)告可能發(fā)生的違規(guī)行為。您可以使用它來反復(fù)處理您的內(nèi)容安全策略。您可以觀察您的網(wǎng)站的行為,監(jiān)視違規(guī)報(bào)告,然后選擇Content-Security-Policy
標(biāo)題實(shí)施的所需策略。
Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/
如果您仍然希望接收報(bào)告,但也希望強(qiáng)制執(zhí)行策略,請?jiān)?code>report-uri指令中使用Content-Security-Policy
標(biāo)題。
Content-Security-Policy: default-src https:; report-uri /csp-violation-report-endpoint/
報(bào)告JSON對象包含以下數(shù)據(jù):
document-uri
發(fā)生違規(guī)的文檔的URI。
referrer
違規(guī)發(fā)生的文件的推薦人。
blocked-uri
內(nèi)容安全策略阻止加載的資源的URI。如果阻止的URI來自與document-uri不同的來源,則阻止的URI將被截?cái)嘁詢H包含方案,主機(jī)和端口。
violated-directive
違反政策部分的名稱。
original-policy
由Content-Security-Policy
HTTP header.disposition 指定的原始策略根據(jù)是否使用Content-Security-Policy
標(biāo)題或Content-Security-Header-Report-Only
標(biāo)題而“enforce”或“reporting” 。
讓我們考慮一個位于http://example.com/signup.html
的頁面。它使用以下策略,禁止除了樣式表之外的所有內(nèi)容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>
你能發(fā)現(xiàn)違規(guī)行為嗎?樣式表只允許加載cdn.example.com
,但網(wǎng)站嘗試從它自己的原點(diǎn)加載一個(http://example.com
)。能夠執(zhí)行CSP的瀏覽器將下列違規(guī)報(bào)告作為POST請求發(fā)送至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" }}
正如您所看到的,報(bào)告包含違規(guī)資源的完整路徑blocked-uri
。這并非總是如此。例如,當(dāng)signup.html
試圖從中加載CSS時http://anothercdn.example.com/stylesheet.css
,瀏覽器將不包含完整路徑,而只包含origin(http://anothercdn.example.com
)。這是為了防止泄露有關(guān)跨源資源的敏感信息。
規(guī)范 | 狀態(tài) | 評論 |
---|---|---|
內(nèi)容安全策略3級 | 編輯草稿 | 沒有變化。 |
內(nèi)容安全策略2級 | 建議 | 初始定義。 |
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | 25 | 23.0 | 14 | 10 | 15 | 7 |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | 4.4 | (Yes) | (Yes) | 23.0 | ? | ? | 7.1 |
Content-Security-Policy
CSP report-uri
directive
Content Security in WebExtensions
Display security and privacy policies In Firefox Developer Tools
https://report-uri.io – CSP and HPKP reporting
Hosted CSP reporting for HTTPS migrations