有没有办法允许脚本但阻止Firefox上的顶级导航?

时间:2014-05-13 23:46:10

标签: javascript html google-chrome firefox

在以下示例中,Foo.html位于/tmp/,并且在没有Web服务器的情况下在本地访问,而Bar.html位于/var/www/并由Apache提供服务。

此配置会导致Foo.htmlBar.html位于不同的来源,但重要的是使示例可重现。

Foo.html

<html>
<script>
foo = function() {
alert("foo says hi");
};
</script>
<iframe sandbox="allow-forms allow-scripts" width="200" height="300" src="http://localhost/Bar.html" onLoad="foo();" /> 
</html>

一个bar.html

<html>
<script>
if(top.location != self.location){
    parent.location = self.location;
}
</script>
<form action="about:blank" method="post">
<input type="text" name="destination_username" value=""/>
<input type="text" name="quantity" value=""/>
<input type="submit" value="Submit" />
</form>
</html>

在Firefox(Linux上的V27)中,如果加载了Foo.htmlBar.html能够转义帧(成为顶部框架),尽管allow-top-navigation中没有sandbox 1}}属性。

在Chrome中,如果加载了Foo.html,则Bar.html无法撤消该框架。

似乎sandbox在Firefox中未正确实现。 是否有一些HTML属性或JS hack,allow-scripts虽然不允许在Firefox中使用top-navigation

0 个答案:

没有答案