CSP:沙箱

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

允許頁面使用 指標鎖定 API

allow-popups

允許彈出視窗(例如來自 Window.open()target="_blank"Window.showModalDialog())。如果未使用此關鍵字,則該功能將靜默失敗。

allow-popups-to-escape-sandbox

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

allow-presentation

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

allow-same-origin

如果未使用此標記,則資源將被視為來自一個特殊的來源,該來源始終無法透過 同源策略(可能阻止訪問 資料儲存/Cookie 和某些 JavaScript API)。

allow-scripts

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

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

允許資源使用 儲存訪問 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

瀏覽器相容性

BCD 表格僅在瀏覽器中載入

另請參閱