【发布时间】:2014-03-06 07:34:00
【问题描述】:
我正在尝试确定是否可以通过编程方式更改 iFrame 的沙盒值。
来自 MDN iframe:
当嵌入文档与主页面同源时, 强烈建议不要同时使用 allow-scripts 和 allow-same-origin 同时,因为这允许嵌入的文档 以编程方式删除沙盒属性。虽然它是 接受,这种情况并不比不使用沙箱更安全 属性。
但是,更改父项中的属性不会成功触发沙盒,因为这将暗示子项。
document.getElementById('myFrame').setAttribute('sandbox', 'allow-scripts');
在该 iFrame 中加载的页面可以成功获得对父级的访问权限,如果沙盒工作正常,则不会出现这种情况。属性确实发生了变化,但安全性存在缺陷,因为它不会阻止对专利的访问。
console.log(window.parent.document);
上述内容仍然适用于“以编程方式”启用沙盒的 iFrame。在 Chrome 和 Firefox 中都是这种情况,这意味着要么是有意的未记录功能,要么是执行不力的规范。
有人对适当的期望有什么想法吗?
【问题讨论】:
标签: javascript html iframe sandbox