沙箱

以下內容嵌入了一個不受信任的網頁,其中包含所有限制

<iframe sandbox src="http://example.com/"></iframe>

要允許頁面執行指令碼並提交表單,請將 allow-scriptsallow-forms 新增到 sandbox attribute

<iframe sandbox="allow-scripts allow-forms" src="http://example.com/"></iframe>

如果在與父網頁相同的域中存在不受信任的內容(例如使用者註釋),則可以使用 iframe 來禁用指令碼,同時仍允許父文件使用 JavaScript 與其內容進行互動。

<iframe sandbox="allow-same-origin allow-top-navigation" src="http://example.com/untrusted/comments/page2">

父文件可以新增事件偵聽器並調整 IFrame 大小以適合其內容。這與 allow-top-navigation 一起,可以使沙盒 iframe 看起來是父文件的一部分。

這個沙箱不是消毒輸入的替代品,但可以用作深度防禦策略的一部分。

另請注意,攻擊者可以通過強制使用者直接訪問 iframe 的源來破壞此沙箱。在內容安全策略的 HTTP 標頭可以用來緩解這種攻擊。