如何防止iframe访问父窗口但允许父窗口访问iframe文档?

时间:2016-02-27 06:28:44

标签: javascript iframe

基本上,我希望有这样的东西(它的ES6):

<iframe id="iframe"></iframe>

<script>
  var iframeDoc = document.getElementById('iframe').contentDocument;
  iframeDoc.open('text/html', 'replace');
  iframeDoc.write(`
    <!doctype html>
    <html>
      <body>
        <script>
          // do not allow window.parent access!
          alert(window.parent.document.cookie);
        <\/script>
      </body>
    </html>
  `);
  iframeDoc.close();
</script>

警告框显示父窗口的cookie,这是不好的。我希望iframe执行自己的沙盒javascript代码。这在HTML5中甚至可能吗?

我已经尝试了sandbox属性及其值的每个排列。

有可能将iframe的内容构造为src属性的数据URI,但这似乎有点hacky。 (或者可能不是?Aren对URI长度有限制吗?)

1 个答案:

答案 0 :(得分:-1)

您是否尝试过使用sandbox

W3C有很好的文档记录,它会阻止顶级浏览环境。

http://www.w3schools.com/tags/att_iframe_sandbox.asp

另请参阅本教程:

http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/