HTML5 iframe沙盒属性问题

HTML5 iframe沙盒属性问题,html,iframe,security,sandbox,Html,Iframe,Security,Sandbox,你能帮我理解HTML5 iframe沙盒属性的Chrome实现吗?允许相同来源和允许顶部导航 第一个问题: 例如,当我测试“允许相同原点”时,我会: <iframe id='frm' src="file.html" sandbox="allow-same-origin"></iframe> ... oIFrame = document.getElementById('frm'); var oDoc = (oIFrame.contentWindow ||

你能帮我理解HTML5 iframe沙盒属性的Chrome实现吗?允许相同来源和允许顶部导航

第一个问题:

例如,当我测试“允许相同原点”时,我会:

 <iframe id='frm' src="file.html" sandbox="allow-same-origin"></iframe>    
...    
oIFrame = document.getElementById('frm');
var oDoc = (oIFrame.contentWindow || oIFrame.contentDocument);    
if (oDoc.document)     {
oDoc = oDoc.document;
oDoc.getElementById('foo').innerText = 'Hello man!';   
...

...    
oIFrame=document.getElementById('frm');
var oDoc=(oIFrame.contentWindow | | oIFrame.contentDocument);
if(oDoc.文件){
oDoc=oDoc.document;
oDoc.getElementById('foo').innerText='HelloMan!';
...
file.html的内容:

...
<div id="foo">Hello</div>    
...   
alert(document.cookie); 
...
。。。
你好
...   
警报(document.cookie);
...
只有当我有一个名为allow scripts的附加属性时,这才有效,所以我有sandbox=“allow scripts allow same origin”。单独使用allow same origin不起作用,单独使用allow scripts效果很好(脚本运行,但与API SOP无关,就HTML5标准而言,这是可以的)

HTML5的标准是:

首先,它可以用于允许对来自同一站点的内容进行沙盒处理,以禁用脚本,同时仍然允许访问沙盒内容的DOM

我是否误解了Chrome的实现是错误的

第二个问题:

HTML5的标准说明了允许顶部导航:

第二,它可以用于嵌入来自第三方网站的内容,通过沙盒防止该网站打开弹出窗口等,而不阻止嵌入的页面通信回其原始网站,使用数据库API存储数据等

我在Chrome中的弹出窗口没有被阻止。我如何阻止它们?我使用的是just allow top navigation

干杯, David关于第一个问题: 这似乎意味着父页面仍然可以访问沙盒
的DOM,而
本身中的脚本被阻止执行;因此它只是
parent->iframe
,而不是
iframe->parent

第二个问题: 也许我误解了,但正如名称
allow top navigation
所暗示的那样,这将允许而不是阻止框架站点使用
top.location.replace()