小编jos*_*ght的帖子

切换 iFrame 沙盒

我试图弄清楚是否可以以编程方式更改 iFrame 沙箱的值。

来自 MDN iframe

当嵌入文档与主页具有相同来源时,强烈建议不要同时使用allow-scripts 和allow-same-origin,因为这会允许嵌入文档以编程方式删除沙箱属性。虽然可以接受,但这种情况并不比不使用沙箱属性更安全。

但是,更改父级中的属性不会成功触发沙箱,因为这会在子级中触发。

document.getElementById('myFrame').setAttribute('sandbox', 'allow-scripts');
Run Code Online (Sandbox Code Playgroud)

该 iFrame 中加载的页面可以成功访问父级,如果沙箱正常工作,则不会出现这种情况。该属性确实发生了变化,但安全性存在缺陷,因为它不会阻止对专利的访问。

console.log(window.parent.document);
Run Code Online (Sandbox Code Playgroud)

上述内容在“以编程方式”启用沙箱的 iFrame 中仍然有效。Chrome 和 Firefox 都是这种情况,这意味着要么是未记录的预期功能,要么是规范实施不当。

有人知道什么是适当的期望吗?

html javascript iframe sandbox

5
推荐指数
1
解决办法
3882
查看次数

标签 统计

html ×1

iframe ×1

javascript ×1

sandbox ×1