破解防iframe

A网站框住了B网站

<iframe src="http://yourwebsite.com"></iframe>  

B网站防止被框,加入如下代码(变种有很多,意思相同)

if (top != self) { top.location.replace(self.location.href); }

A网站破解方法如下:

1、这种方法是在网上搜到的大多数解决方法,但是仅支持IE

var location = ""
//或者
var location = document.location

2、在stackoverflow上找到的一个另一种方法,暂时发现仅不支持opera浏览器

<script type="text/javascript">
    var prevent_bust = 0  
    window.onbeforeunload = function() { prevent_bust++ }  
    setInterval(function() {  
      if (prevent_bust > 0) {  
        prevent_bust -= 2  
        window.top.location = 'http://server-which-responds-with-204.com'  
      }  
    }, 1)  
</script>

简单介绍一下原理,B网站改变top.location的行为会触发window.onbeforeunload事件,A网站捕获到以后,将location指向一个“204页面”。

但是这样导致了另外一个问题,你会发现A页面所有链接都失效了,你可以做如下改动prevent_bust -= 3,一切OK了。

但是你仍然要注意,这种方法仅在B网站加入了如上防被框代码才有效,如果B去掉了这段代码,你也要做相应的改动。这并不是一劳永逸的方法。

很遗憾,正如你看到的那样,没有什么完美的方法。

posted @ 2011-08-21 15:22  jungledrum  阅读(1454)  评论(0编辑  收藏  举报