Rumah >hujung hadapan web >tutorial js >Bagaimana Kita Boleh Mengalahkan Pemusnah Bingkai Yang Menggunakan `setInterval` dan `onbeforeunload`?

Bagaimana Kita Boleh Mengalahkan Pemusnah Bingkai Yang Menggunakan `setInterval` dan `onbeforeunload`?

Susan Sarandon
Susan Sarandonasal
2024-12-09 03:44:09546semak imbas

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

Frame Buster Buster Buster: Defying the Unbreakable

Anda telah melaksanakan skrip pemusnah bingkai yang teguh untuk menghalang tapak anda daripada dipaparkan dalam iframe. Tetapi apa yang berlaku apabila kod pemusnah bingkai anda sendiri menjadi sasaran?

Penghilang Bingkai Bingkai.

Penyerang yang bijak telah membangunkan skrip yang boleh memintas bingkai anda- langkah menyekat dengan menggunakan peristiwa window.onbeforeunload dan pemasa ditetapkan untuk menyala setiap milisaat. Skrip penyerang:

  • Menghalang penyemak imbas daripada menavigasi keluar dari halaman semasa dengan menambah pembilang dalam pengendali acara window.onbeforeunload.
  • Mengubah hala lokasi ke pelayan yang dikawal oleh penyerang menggunakan pemasa.
  • Pelayan penyerang bertindak balas dengan kod status 204, menghalang penyemak imbas daripada menavigasi ke mana-mana sahaja.

Percubaan awal anda untuk mengalahkan penghancur penghancur bingkai ini telah gagal. Mengosongkan acara onbeforeunload tidak mempunyai kesan dan kotak amaran hanya memberikan gangguan sementara.

Buster Buster Buster.

Bolehkah anda memecahkan kitaran dan mengalahkan bingkai yang gigih -menghancurkan buster? Satu pendekatan untuk meneutralkan skrip penyerang ialah dengan menyasarkan pemasa setInterval():

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

Skrip ini:

  • Secara kerap menyemak kehadiran pemasa penyerang.
  • Apabila pemasa dikesan, ia mengosongkan pemasa, menetapkan semula prevent_bust kepada 0.
  • Tindakan ini secara berkesan memutuskan kitaran dan menghalang skrip penyerang daripada terus dilaksanakan.

Kesimpulan.

Semasa bingkai -buster-buster-buster adalah satu cabaran yang menggerunkan, buster-buster-buster menunjukkan daya tahan dan kebolehsuaian JavaScript pengaturcara. Dengan menganalisis kod penyerang dengan teliti dan memanfaatkan pengetahuan tentang ciri JavaScript, kami boleh mengatasi ancaman yang paling kompleks sekalipun.

Atas ialah kandungan terperinci Bagaimana Kita Boleh Mengalahkan Pemusnah Bingkai Yang Menggunakan `setInterval` dan `onbeforeunload`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn