1

我对这个问题很感兴趣IFrame 究竟可以对 top.Location 对象(跨域)做什么?.

最近想想办法防御Clickjacking,找到了这个解决方案

但是,此解决方案将禁止任何页面对我的页面进行 iframe,而我想要的是允许白名单中的某些站点可以对我的页面进行 iframe。

我知道X-Frame-OptionsAllow-From可以达到我的目的,但是 IE 6 和 IE 7 不支持这个功能。

是否可以允许我的页面被框起来,但只能由指定的来源?

更新 @Padrig 感谢您回答我的问题。我现在无法评论你的答案,所以我必须编辑我的问题。

我已经尝试了您的解决方案,但它无法正常工作。

http://www.b.com/poc/beframed.html

<script>
    if (self === top) || (top.location.hostname == 'www.a.com')) {
        alert(1);
    } 
</script>

http://www.a.com/poc/framer.html

<iframe src="http://www.b.com/poc/beframed.html"></iframe>

我的主机文件:

127.0.0.1 www.a.com
127.0.0.1 www.b.com

我的 Chrome 浏览器中没有警报。

4

1 回答 1

1

出于安全原因,Javascript 不允许一个框架访问不同域中另一个框架的属性。

是的,这是可能的,但是使用 document.referrer。

于 2012-04-27T01:55:25.793 回答