HTML5 iframe沙盒属性问题
你能帮我理解HTML5 iframe沙盒属性的Chrome实现吗?允许相同来源和允许顶部导航 第一个问题: 例如,当我测试“允许相同原点”时,我会: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 ||
<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()