首页 > web前端 > js教程 > 如何击败绕过传统 Frame-Busting JavaScript 的 Frame-Busting Buster?

如何击败绕过传统 Frame-Busting JavaScript 的 Frame-Busting Buster?

Barbara Streisand
发布: 2024-12-24 16:34:14
原创
490 人浏览过

How Can I Defeat a Frame-Busting Buster That Bypasses Traditional Frame-Busting JavaScript?

击败 Frame Busting Buster

考虑一下您希望阻止其他网站将您的网站嵌入

/* break us out of any containing iframes */
if (top != self) { top.location.replace(self.location.href); }
登录后复制

虽然有效,但此代码可以被框架破坏破坏器绕过:

<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>
登录后复制

此buster 的操作方式是:

  • 在任何尝试离开的导航时增加计数器页面
  • 如果计数器增加,使用计时器将页面重定向到攻击者的服务器
  • 检索 204 HTTP 状态代码,防止进一步导航

那么,如何打败破坏框架的破坏者呢?

一个有效的方法是使用大多数现代浏览器支持的 X-Frame-Options:deny 指令。即使禁用脚本,此指令也会阻止框架:

X-Frame-Options: deny
登录后复制

浏览器支持:

  • IE8: https://blogs.msdn.com/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx
  • Firefox (3.6.9):

    • https://bugzilla.mozilla.org/show_bug.cgi?id=475530
    • htt ps://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header
  • Chrome/Webkit:

    • http://blog.chromium.org/2010/01/security-in-depth-n ew-security-features.html
    • http://trac.webkit.org/changeset/42333

以上是如何击败绕过传统 Frame-Busting JavaScript 的 Frame-Busting Buster?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板