破解防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去掉了这段代码,你也要做相应的改动。这并不是一劳永逸的方法。
很遗憾,正如你看到的那样,没有什么完美的方法。