防止杀帧

时间:2009-08-24 10:07:03

标签: javascript html

而不是询问如何杀死帧。我有兴趣知道可以使用什么技术来防止页面内的iframe被“帧杀手”杀死

2 个答案:

答案 0 :(得分:9)

不幸的是,由于他们的工作方式,总有一种方法可以获得圆形框架杀手。 (但正在框架的网站通常会显示警告)。

见杰夫阿特伍德的“disturbing revelation”。

一些选择摘录:

  

如果一个邪恶的网站决定它的进展   为了构建您的网站,您将成为   陷害。期间。框架破坏是   只不过是一种虚假的感觉   安全;它不起作用。

帧破坏代码(来自链接的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>

此代码执行以下操作:

  • 每次增加一个计数器 浏览器尝试导航 从当前页面,通过 window.onbeforeonload事件处理程序

  • 设置一个可以触发每个人的计时器 毫秒通过setInterval()和if 它看到计数器递增, 将当前位置更改为a 攻击者控制的服务器

  • 该服务器用于提供页面 HTTP状态代码204,但没有 导致浏览器导航 任何地方

答案 1 :(得分:2)

令人高兴的是,在Internet Explorer之外没有什么可行的(它允许在iframe中禁用JS作为安全功能)。

如果网站的作者不希望他们的网页被框起来,那么这就是他们的选择。