阻止iframe设置parent.location(防止框架破解)

4
我有自己域名的网站,通过iframe包含其他域上的站点以实现快速预览。问题在于,一些网站有防嵌入代码,会将用户从我的站点重定向。如何停止这种情况呢?即使根本不显示iframe,也比遇到framebuster时重新定向要好。顺便问一下,难道这个重定向不能被同源保护所阻止吗?
更新:好吧,看起来无法阻止重定向,但是完全不显示框架是否可能呢?我尝试了双重框架方法:A和B在我的网站上,B包含C,当B获取window.onbeforeunload时,它向A发送一条消息以删除B。但是这也行不通,因为似乎框架可以访问整个顶层窗口而不仅仅是父窗口。对于阻止重定向,window.onbeforeunload很有效,但然后你就必须显示一个对话框。

1
多年以后:使用iframe元素的“sandbox”属性来防止框架破坏,并使用“X-frame-options”防范点击劫持滥用,这可能是针对恶意广告造成的框架破坏做出的回应。 - kdb
5个回答

6

这是不可能完成的,因为如果违反同源策略,您无法访问iframe中页面的DOM。

最好不要这样做。如果人们有防嵌入代码,显然他们不希望自己的页面被嵌入到框架中。请尊重他们的意愿。


1

在弹出窗口中运行一个测试怎么样?给它20秒,如果你仍然控制着弹出窗口(即框架没有改变document.url),那么在一个新的框架中加载并显示给用户。否则,不显示任何框架。这并不是百分之百可靠,但可能会起作用。


0

我该如何停止这个。

你不能。如果可以的话,那么一开始就使用防框架破解代码就没有意义了。

顺便说一下,这个重定向不应该被同源保护阻止吗?

同源保护只能保护您免受访问/修改页面的 DOM(即 document 对象)的影响。防框架破解代码只使用 window 对象来检测框架并重定向到另一个页面。


0

这是一场猫捉老鼠的游戏,但是框架破解可以被打败。

根据斯坦福大学和卡内基梅隆大学的研究人员(PDF)的研究,框架破解并不能像预期的那样有效地防止点击劫持。对Alexa排名前500个网站的分析发现,所有的框架破解实现都可以被规避。研究人员发现,其中一些规避方法是特定于浏览器的,而另一些则适用于所有浏览器。

eweek上的原始文章;斯坦福大学 (PDF)的研究论文。


0

如果你只是想预览网站,那么有很多服务可以做到这一点。我没有使用过任何一个,但是快速的谷歌搜索可以找到这个。

http://www.thumbshots.com/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接