假设您不希望其他网站将您的网站“框”为<iframe>:
<iframe>
<iframe src="http://example.org"></iframe>
因此,您可以在所有页面中插入反框架,框架破坏JavaScript:
/* break us out of any containing iframes */ if (top != self) { top.location.replace(self.location.href); }
优秀的!现在,您可以自动“破坏”或突破包含iframe的任何内容。除了一个小问题。
事实证明,您的框架破坏代码可以被破坏如下所示
<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://example.org/page-which-responds-with-204' } }, 1) </script>
此代码执行以下操作:
window.onbeforeunload
setInterval()
我的问题是-与实际 问题 相比,这更多的是JavaScript难题-如何克服破坏框架的破坏力?
我有一些想法,但在测试中没有任何效果:
onbeforeunload
onbeforeunload = null
alert()
我不确定这是否可行- 但是,如果您无法打破框架,为什么不显示警告。例如,如果您的页面不是“首页”,则创建一个setInterval方法来尝试破坏框架。如果经过3或4次尝试后,您的页面仍不是首页,请创建一个div元素,该元素将覆盖整个页面(模式框),并显示一条消息和一个类似…
您正在未经授权的框架窗口中查看此页面-(等等)潜在的安全问题) 点击此链接可解决此问题
您正在未经授权的框架窗口中查看此页面-(等等)潜在的安全问题)
点击此链接可解决此问题
不是最好的,但是我看不出他们可以用哪种方式来摆脱困境。