防止杀帧

com*_*tta 0 html javascript

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

Jon*_*ley 9

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

见杰夫阿特伍德的" 令人不安的启示 ".

一些选择摘录:

如果一个邪恶的网站决定它将构建您的网站,您将被诬陷.期.框架破坏只不过是一种虚假的安全感; 它不起作用.

帧破坏代码(来自链接的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的页面,这不会导致浏览器在任何地方导航