我对这个问题很感兴趣IFrame 究竟可以对 top.Location 对象(跨域)做什么?.
最近想想办法防御Clickjacking,找到了这个解决方案。
但是,此解决方案将禁止任何页面对我的页面进行 iframe,而我想要的是允许白名单中的某些站点可以对我的页面进行 iframe。
我知道X-Frame-Options的Allow-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 浏览器中没有警报。