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
Libérer: 2024-12-09 03:44:09
original
547 Les gens l'ont consulté

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal