?
This document uses PHP Chinese website manual Release
HTTP Content-Security-Policy
響應(yīng)頭允許網(wǎng)站管理員控制允許用戶代理為給定頁面加載的資源。除少數(shù)例外,策略主要涉及指定服務(wù)器源和腳本端點。這有助于防止跨站點腳本攻擊(XSS)。
有關(guān)更多信息,另請參閱本文有關(guān)內(nèi)容安全策略(CSP)的文章。
標(biāo)題類型 | 響應(yīng)標(biāo)題 |
---|---|
禁止標(biāo)題名稱 | 沒有 |
Content-Security-Policy: <policy-directive>; <policy-directive>
提取指令控制可以加載某些資源類型的位置。
child-src
定義Web工作人員的有效來源以及使用元素(例如<frame>
和)加載的嵌套瀏覽上下文<iframe>
。
connect-src
限制可以使用腳本接口加載的URL default-src
用作其他提取指令的后備。
font-src
指定使用加載的字體的有效來源@font-face
。frame-src
為使用元素(例如<frame>
和)加載的嵌套瀏覽上下文指定有效來源<iframe>
。
img-src
指定圖像和網(wǎng)站圖標(biāo)的有效來源。
manifest-src
指定應(yīng)用程序清單文件的有效來源。
media-src
指定使用加載媒體來源有效<audio>
,<video>
和<track>
元素。
object-src
指定有效的來源<object>
,<embed>
和<applet>
元素。
script-src
指定JavaScript的有效來源。
style-src
指定樣式表的有效來源。
worker-src
指定有效來源Worker
,SharedWorker
或ServiceWorker
腳本。
Document指令控制策略適用的文檔或工作環(huán)境的屬性。
base-uri
限制可以在文檔<base>
元素中使用的URL 。
plugin-types
通過限制可以加載的資源類型來限制可以嵌入到文檔中的一組插件。
sandbox
為請求的資源啟用沙箱,類似于<iframe>
sandbox
屬性。disown-opener
確保資源在導(dǎo)航時不會泄露其開啟者。
例如,導(dǎo)航指令控制用戶可以導(dǎo)航到哪個位置或?qū)⒈韱翁峤坏侥膫€位置。
form-action
限制可以用作來自給定上下文的表單提交的目標(biāo)的URL。frame-ancestors
指定有效的父級可以使用嵌入網(wǎng)頁<frame>
,<iframe>
,<object>
,<embed>
,或<applet>
。navigation-to
限制文檔可以通過任何方式(a, form, window.location, window.open,等)導(dǎo)航到的URL。
報告指令控制著違反CSP的報告流程。另見Content-Security-Policy-Report-Only
標(biāo)題。
report-uri
指示用戶代理報告違反內(nèi)容安全策略的企圖。這些違規(guī)報告由通過HTTP 請求發(fā)送到指定URI 的JSON文檔組成POST
。report-to
Fires SecurityPolicyViolationEvent
。
block-all-mixed-content
當(dāng)使用HTTPS加載頁面時,防止使用HTTP加載任何資產(chǎn)。
referrer
用于在引用者(sic)頭中指定遠(yuǎn)離頁面的鏈接的信息。
Referrer-Policy
改為使用標(biāo)題。
require-sri-for
需要在頁面上使用SRI作為腳本或樣式。
upgrade-insecure-requests
指示用戶代理將所有站點的不安全URL(通過HTTP提供的URL)視為已被替換為安全URL(通過HTTPS提供的URL)。此指令適用于需要重寫大量不安全的舊版URL的網(wǎng)站。
Workers在一般不是由創(chuàng)建它們的文檔(或父worker)的內(nèi)容安全策略管理。要為 workers 指定內(nèi)容安全策略Content-Security-Policy
,請為請求 workers 腳本本身的請求設(shè)置響應(yīng)標(biāo)頭。
例外情況是,如果workers腳本的來源是全局唯一標(biāo)識符(例如,如果其 URL 具有數(shù)據(jù)或 blob 的方案)。在這種情況下,workers 會繼承創(chuàng)建它的文檔或 workers 的內(nèi)容安全策略。
CSP允許為資源指定多個策略,包括通過Content-Security-Policy
標(biāo)題,Content-Security-Policy-Report-Only
標(biāo)題和<meta>
元素。
您可以Content-Security-Policy
多次使用標(biāo)題,如下例所示。請?zhí)貏e注意connect-src
這里的指示。即使第二個策略允許連接,第一個策略也包含在內(nèi)connect-src 'none'
。添加其他策略只能進(jìn)一步限制受保護(hù)資源的功能,這意味著將不允許連接,并且作為最嚴(yán)格的策略connect-src 'none'
實施。
Content-Security-Policy: default-src 'self' http://example.com; connect-src 'none';Content-Security-Policy: connect-src http://example.com/; script-src http://example.com/
示例:禁用不安全的內(nèi)聯(lián)/評估,僅允許通過https:
// headerContent-Security-Policy: default-src https:// meta tag<meta http-equiv="Content-Security-Policy" content="default-src https:">
示例:預(yù)先存在的站點使用過多的內(nèi)聯(lián)代碼進(jìn)行修復(fù),但希望確保僅通過 https 加載資源并禁用插件:
Content-Security-Policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'
示例:尚未實施上述政策;而只是報告將會發(fā)生的違規(guī)行為:
Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/
有關(guān)更多示例,請參閱Mozilla網(wǎng)絡(luò)安全指南。
規(guī)范 | 狀態(tài) | 評論 |
---|---|---|
內(nèi)容安全策略3級 | 編輯草稿 | 添加disown-opener,manifest-src,navigation-to,report-to,strict-dynamic,worker-src。取消不推薦使用frame-src。如果報告為廢棄,則棄用report-uri。 |
混合內(nèi)容 | 候選推薦 | 添加塊全混合內(nèi)容。 |
子資源完整性 | 建議 | 添加require-sri-for。 |
升級不安全的請求 | 候選推薦 | 添加升級不安全請求。 |
內(nèi)容安全策略2級 | 建議 | 添加base-uri,child-src,表單動作,框架 - 祖先,插件類型,引用鏈接器,反射-xss和報表 - uri。棄用frame-src。 |
內(nèi)容安全策略1.0 | 候選推薦 | 定義connect-src,default-src,font-src,frame-src,img-src,media-src,object-src,report-uri,sandbox,script-src和style-src。 |
特征 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基本支持 | 251 | 14 | 23.02 | 103 | 15 | 74 |
<meta> element 支持 | (Yes) | (Yes) | 45.0 | No | (Yes) | (Yes) |
Worker 支持 | (Yes) | ? | 50.0 | No | ? | No |
特征 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基本支持 | (Yes) | (Yes) | (Yes) | 23.0 | ? | ? | 7.15 |
<meta> element 支持 | (Yes) | (Yes) | (Yes) | 45.0 | No | (Yes) | (Yes) |
Worker 支持 | (Yes) | (Yes) | ? | 50.0 | No | ? | No |
在Chrome 14中作為X-Webkit-CSP標(biāo)頭實現(xiàn)。
2. 在Firefox 4中作為X-Content-Security-Policy header實施。
3. 作為X-Content-Security-Policy header實現(xiàn),只支持'sandbox'指令。
4. 在Safari 6中實現(xiàn)為X-Webkit-CSP header。
5. 在iOS 5.1中作為X-Webkit-CSP header實現(xiàn)
Content-Security-Policy-Report-Only
2. WebExtensions中的內(nèi)容安全性
3. 顯示安全和隱私政策在Firefox開發(fā)者工具中