沙箱
以下內容嵌入了一個不受信任的網頁,其中包含所有限制
<iframe sandbox src="http://example.com/"></iframe>
要允許頁面執行指令碼並提交表單,請將 allow-scripts
和 allow-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 標頭可以用來緩解這種攻擊。