Content-Security-Policy: sandbox 指令

Baseline 已廣泛支援

此功能已得到良好確立,並在許多裝置和瀏覽器版本中都可使用。自 ⁨2016 年 11 月⁩以來,它已在所有瀏覽器中可用。

HTTP Content-Security-Policy (CSP) sandbox 指令為請求的資源啟用沙盒,類似於 <iframe>sandbox 屬性。它對頁面的行為施加限制,包括阻止彈出視窗、阻止外掛和指令碼的執行以及強制實施同源策略。

CSP 版本 1.1 / 2
指令型別 文件指令
此指令在 <meta> 元素中不受支援,也不受 Content-Security-policy-Report-Only 標頭欄位的支援。

語法

http
Content-Security-Policy: sandbox;
Content-Security-Policy: sandbox <value>;

其中 <value> 可以是以下可選值之一

allow-downloads

允許透過帶有 download 屬性的 <a><area> 元素下載檔案,以及透過導致檔案下載的導航來下載檔案。無論使用者是否單擊連結,或者 JS 程式碼在沒有使用者互動的情況下啟動下載,這都有效。

allow-forms

允許頁面提交表單。如果未使用此關鍵字,表單將正常顯示,但提交它不會觸發輸入驗證、向 Web 伺服器傳送資料或關閉對話方塊。

allow-modals

允許頁面透過 Window.alert()Window.confirm()Window.print()Window.prompt() 開啟模態視窗,而 <dialog> 的開啟則不受此關鍵字的限制。它還允許頁面接收 BeforeUnloadEvent 事件。

allow-orientation-lock

允許資源鎖定螢幕方向

allow-pointer-lock

允許頁面使用 Pointer Lock API

allow-popups

允許彈出視窗(例如,由 Window.open()target="_blank" 建立)。如果未使用此關鍵字,彈出視窗將靜默失敗。

allow-popups-to-escape-sandbox

允許沙盒文件開啟新視窗,而無需對其強制執行沙盒標誌。例如,這將允許第三方廣告被安全沙盒化,而無需對廣告連結到的頁面強制執行相同的限制。

allow-presentation

允許嵌入器控制 iframe 是否可以啟動演示會話

allow-same-origin

允許沙盒資源保留其來源。否則,沙盒資源將被視為來自不透明來源,這確保它將始終無法透過同源策略檢查,因此無法訪問localstoragedocument.cookie 以及某些 JavaScript API。沒有 allow-same-origin 關鍵字的沙盒資源的 Originnull

allow-scripts

允許頁面執行指令碼(但不建立彈出視窗)。如果未使用此關鍵字,則不允許此操作。

allow-storage-access-by-user-activation 實驗性

允許資源使用 Storage Access API 請求訪問父級的儲存功能。

allow-top-navigation

允許資源導航頂級瀏覽上下文(即名為 _top 的上下文)。

allow-top-navigation-by-user-activation

允許資源導航頂級瀏覽上下文,但僅限於使用者手勢發起時。

allow-top-navigation-to-custom-protocols

允許導航到瀏覽器內建的或網站註冊的http 協議。此功能也會被 allow-popupsallow-top-navigation 關鍵字啟用。

注意: allow-top-navigation 和相關值僅對嵌入式文件(例如子 iframe)有意義。對於獨立文件,這些值不起作用,因為頂級瀏覽上下文就是文件本身。

示例

http
Content-Security-Policy: sandbox allow-scripts;

規範

規範
內容安全策略級別 3
# directive-sandbox

瀏覽器相容性

另見