CSP:沙箱
HTTP Content-Security-Policy (CSP) 的 sandbox 指令為請求的資源啟用沙箱,類似於 <iframe> 的 sandbox 屬性。它對頁面的操作施加限制,包括阻止彈出視窗、阻止外掛和指令碼的執行以及強制實施同源策略。
| CSP 版本 | 1.1 / 2 |
|---|---|
| 指令型別 | 文件指令 |
此指令在 <meta> 元素或 Content-Security-policy-Report-Only 標頭欄位中不受支援。 |
|
語法
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 請求訪問父級的儲存功能。
-
允許資源導航頂級瀏覽上下文(名為
_top的那個)。 -
允許資源導航頂級瀏覽上下文,但僅在由使用者手勢啟動時才允許。
-
允許導航到瀏覽器內建或 由網站註冊 的非
http協議。此功能也由allow-popups或allow-top-navigation關鍵字啟用。
注意:allow-top-navigation和相關值僅對嵌入式文件(如子 iframe)有意義。對於獨立文件,這些值無效,因為頂級瀏覽上下文是文件本身。
示例
Content-Security-Policy: sandbox allow-scripts;
規範
| 規範 |
|---|
| 內容安全策略級別 3 # directive-sandbox |
瀏覽器相容性
BCD 表格僅在瀏覽器中載入