Maison >interface Web >js tutoriel >Comment pouvons-nous vaincre un casse-images qui utilise « setInterval » et « onbeforeunload » ?

Comment pouvons-nous vaincre un casse-images qui utilise « setInterval » et « onbeforeunload » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-09 03:44:09543parcourir

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

Frame Buster Buster Buster : Défier l'incassable

Vous avez implémenté un script robuste de contournement de cadres pour empêcher votre site de s'afficher dans une iframe. Mais que se passe-t-il lorsque votre code de frame-busting lui-même devient la cible ?

The Frame Busting Buster.

Un attaquant intelligent a développé un script qui peut contourner votre frame-busting. contourner les mesures en utilisant l'événement window.onbeforeunload et une minuterie réglée pour se déclencher toutes les millisecondes. Le script de l'attaquant :

  • Empêche le navigateur de quitter la page actuelle en incrémentant un compteur dans le gestionnaire d'événement window.onbeforeunload.
  • Redirige l'emplacement vers un serveur contrôlé par le attaquant utilisant une minuterie.
  • Le serveur de l'attaquant répond avec un code d'état 204, empêchant le navigateur de naviguer n'importe où.

Vos premières tentatives pour vaincre ce casse-tête ont échoué. Effacer l'événement onbeforeunload n'a aucun effet et les boîtes d'alerte ne fournissent qu'une interruption temporaire.

Le Buster Buster Buster.

Pouvez-vous briser le cycle et vaincre le cadre tenace - Buster Buster? Une approche pour neutraliser le script de l'attaquant consiste à cibler le timer setInterval() :

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

Ce script :

  • Vérifie régulièrement la présence du timer de l'attaquant.
  • Lorsque la minuterie est détectée, elle efface la minuterie, réinitialisant Prevent_bust à 0.
  • Cette action brise efficacement le cycle et empêche le script de l'attaquant de continuer à s'exécuter.

Conclusion.

Pendant le cadre -busting buster était un formidable défi, le buster-buster-buster démontre la résilience et l'adaptabilité des programmeurs JavaScript. En analysant soigneusement le code de l'attaquant et en tirant parti de la connaissance des fonctionnalités de JavaScript, nous pouvons surmonter même les menaces les plus complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn