Daw*_*wid 5 security iframe html5 sandbox
你能帮我理解HTML5 iframe沙箱属性的Chrome实现允许同源和允许顶级导航吗?
第一个问题:
例如,当我测试allow-same-origin我做的时候:
<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!';
...
Run Code Online (Sandbox Code Playgroud)
file.html的内容:
...
<div id="foo">Hello</div>
...
alert(document.cookie);
...
Run Code Online (Sandbox Code Playgroud)
只有当我有一个名为allow-scripts的附加属性时才有效,所以我有sandbox ="allow-scripts allow-same-origin".单独允许 - 同源不起作用并且单独允许 - 脚本工作得很好(脚本运行但不是API SOP相关,它可以考虑HTML5标准).
HTML5标准说:
"首先,它可以用来允许来自同一站点的内容被沙箱化以禁用脚本,同时仍然允许访问沙盒内容的DOM."
我误解了Chrome或Chrome实现是错误的吗?
第二个问题:
关于allow-top-navigation的HTML5标准说:
"其次,它可用于嵌入来自第三方网站的内容,沙盒以防止该网站打开弹出窗口等,而不会阻止嵌入式页面与其原始站点进行通信,使用数据库API来存储数据,等等."
Chrome中的弹出窗口未被阻止.我怎么能阻止它们?我只使用allow-top-navigation.
干杯,大卫
对于第一个问题:这似乎意味着父页面仍然可以访问沙盒的 DOM <iframe>,而其<iframe>本身的脚本被阻止执行;所以这只是parent -> iframe但不是iframe -> parent
第二个问题:也许我误解了,但顾名思义,allow-top-navigation这将允许而不是阻止框架网站使用top.location.replace().
| 归档时间: |
|
| 查看次数: |
3768 次 |
| 最近记录: |