首頁 >web前端 >js教程 >如何擊敗繞過傳統 Frame-Busting JavaScript 的 Frame-Busting Buster?

如何擊敗繞過傳統 Frame-Busting JavaScript 的 Frame-Busting Buster?

Barbara Streisand
Barbara Streisand原創
2024-12-24 16:34:14495瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:代碼檢查下一篇:代碼檢查