首頁 > web前端 > js教程 > 我們如何擊敗使用'setInterval”和'onbeforeunload”的幀破壞破壞者?

我們如何擊敗使用'setInterval”和'onbeforeunload”的幀破壞破壞者?

Susan Sarandon
發布: 2024-12-09 03:44:09
原創
549 人瀏覽過

How Can We Defeat a Frame-Busting Buster That Uses `setInterval` and `onbeforeunload`?

Frame Buster Buster Buster:挑戰堅不可摧

您已經實現了一個強大的框架破壞腳本,以防止您的網站顯示在一個iframe。但是,當您的框架破壞程式碼本身成為目標時會發生什麼?

框架破壞破壞者。

聰明的攻擊者開發了一個可以繞過您的框架的腳本 -通過利用 window.onbeforeunload 事件和設置為每毫秒觸發的計時器來破壞措施。攻擊者的腳本:

  • 增加 window.onbeforeunload 事件處理程序中的計數器來防止瀏覽器離開目前頁面。
  • 將位置重新導向到由攻擊者使用計時器。
  • 攻擊者的伺服器回應 204 狀態代碼,阻止瀏覽器導航到任何地方。

你最初嘗試擊敗這個破壞幀的破壞者已經失敗了。清除onbeforeunload事件沒有效果,警報框只提供暫時的中斷。

巴斯特巴斯特巴斯特。

你能打破循環,打敗頑強的框架嗎? -破壞破壞者?中和攻擊者腳本的一種方法是針對 setInterval() 計時器:

// Detect the attacker's script
var busterBuster = setInterval(function() {
  if (prevent_bust > 0) {
    // Bust the buster
    clearInterval(busterBuster);
    prevent_bust = 0;
  }
}, 1);
登入後複製

此腳本:

  • 定期檢查攻擊者計時器是否存在。
  • 當偵測到計時器時,它會清除計時器,並將 Prevent_bust 重設為0.
  • 此操作有效地打破了循環並阻止攻擊者的腳本繼續執行。

結論。

雖然框架-busting buster 是一個艱鉅的挑戰,buster-buster-buster 展示了 JavaScript 程式設計師的彈性和適應性。透過仔細分析攻擊者的程式碼並利用 JavaScript 功能的知識,我們甚至可以克服最複雜的威脅。

以上是我們如何擊敗使用'setInterval”和'onbeforeunload”的幀破壞破壞者?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板