window.pipedriveLeadboosterConfig = { base : 'leadbooster-chat.pipedrive.com', companyId : 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version : 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster existe déjà') } else { w.LeadBooster = { q : [], on : function (n, h) { this.q.push({ t : 'o', n : n, h : h }) }, trigger : function (n) { this.q.push({ t : 't', n : n }) }, } } })() Sécurité des applications web. Vulnérabilité Target="_blank" - The Codest
The Codest
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Industries
    • Fintech et banque
    • E-commerce
    • Adtech
    • Santé (Healthtech)
    • Fabrication
    • Logistique
    • Automobile
    • IOT
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
Flèche arrière RETOUR
2021-04-28
Développement de logiciels

Sécurité des applications web. Vulnérabilité Target="_blank

Lukasz Kolko

L'utilisation d'applications web est devenue monnaie courante dans toutes les sociétés. Nous y sommes confrontés tous les jours. On peut dire qu'elles nous entourent. Nous les utilisons au travail, pour nous divertir et comme outils de communication avec les autres. Souvent, en tant qu'utilisateurs et développeurs, nous ne nous rendons pas compte du nombre de failles de sécurité qui sont découvertes chaque jour dans ces applications.

Récemment, nous avons écrit sur la sécurité des applications web en ce qui concerne la vulnérabilité XSS. Cette fois-ci, nous voulons attirer votre attention sur un autre danger.

La vulnérabilité dont il est question dans le présent document existe depuis longtemps et, en raison de sa simplicité, elle est souvent sous-estimée, voire inconnue de certains. développeurs d'applications web.

Presque toutes les applications web contiennent des liens qui, lorsqu'on clique dessus, s'ouvrent dans un nouvel onglet afin de ne pas fermer l'onglet avec la page d'origine. Il s'agit d'un comportement privilégié, car les créateurs souhaitent que l'utilisateur passe le plus de temps possible dans l'application.

Une attaque qui exploite cette vulnérabilité est ce qu'on appelle le "reverse tabnabbing". Il s'agit d'une attaque où une page liée à la page cible est capable de remplacer cette page par, par exemple, un site d'hameçonnage.

Scénario d'attaque

  1. Supposons que la victime utilise Facebook, qui est connu pour ouvrir des liens via target="_blank",
  2. Créer une fausse page virale,
  3. Créer un site web de phishing qui ressemble à la page de connexion de Facebook,
  4. Mettez le texte ci-dessous code sur la page virale, par exemple, par le biais d'une vulnérabilité XSS trouvée
    window.opener.location = 'https://phishing-website/facebook.com' ;
  5. La victime clique sur le lien Facebook menant à la page virale,
  6. La page virale redirige l'onglet Facebook vers le site web d'hameçonnage en demandant à l'utilisateur de se reconnecter.

Ainsi, nous pouvons changer l'onglet parent de la page cible infectée par l'objet fenêtre de l'API Web. En général, une attaque consiste à utiliser en parallèle plusieurs vulnérabilités découvertes et des escroqueries par hameçonnage.

Le problème

Lorsque nous ouvrons un nouvel onglet dans le navigateur à l'aide d'un lien avec la balise target="_blank" nous avons accès à notre "référent" depuis le nouvel onglet. Plus précisément, à l'attribut ouvreur de la propriété Fenêtre qui renvoie une référence à la fenêtre qui l'a ouvert, notre page parent.

Ceci est dû au comportement du Fenêtre.open() fonction. En accédant à cet attribut, nous pouvons facilement remplacer notre page parent. Notez que certains navigateurs modernes peuvent rendre window.opener dans l'onglet cible en tant que nul pour éviter ce comportement.

Exemple de code

<code> <a href="https://github.com" target="_blank">Aller sur GitHub - lien infecté</a>
const
 si (lien)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Ci-dessus, vous pouvez voir le lien infecté qui ouvre un nouvel onglet avec une page GitHub, mais entre-temps, il change notre page "parent" en site Stackoverflow.

Exemple concret

1. Liens HTML

Ajouter rel="noopener noreferrer" à la <a> étiquette.

Les rel définit la relation entre une ressource liée et le document actuel.

noopener indique au navigateur de naviguer vers la cible sans autoriser l'accès au parent qui l'a ouverte. Onglet cible Fenêtre.opener sera nul.

noreferrer empêche le navigateur, lorsqu'il navigue vers la cible, d'envoyer au parent l'adresse ou toute autre valeur en tant que référent par l'intermédiaire de l'élément référent En-tête HTTP. Notez que le nom de cet en-tête HTTP est intentionnellement mal orthographié en tant que "referrer".

2. JavaScript liens

Pour le JavaScript Fenêtre.ouverte vous pouvez ajouter les valeurs noopener et noreferrer dans le Caractéristiques de la fenêtre du paramètre Fenêtre.ouverte mais les navigateurs peuvent réagir différemment, c'est pourquoi il est recommandé d'utiliser la fonction Fenêtre.opener comme nul après avoir utilisé Fenêtre.open() fonction.

En savoir plus:

API Rails et CORS. Un soupçon de conscience

Stratégies de récupération des données dans NextJS

7 raisons pour lesquelles votre boutique en ligne a besoin de Magento

Si cet article vous intéresse, suivez Lukasz sur Github : https://github.com/twistezo

Articles connexes

Développement de logiciels

Construire des applications web à l'épreuve du temps : les conseils de l'équipe d'experts de The Codest

Découvrez comment The Codest excelle dans la création d'applications web évolutives et interactives à l'aide de technologies de pointe, offrant une expérience utilisateur transparente sur toutes les plateformes. Découvrez comment notre expertise favorise la transformation numérique et la...

LE CODEST
Développement de logiciels

Les 10 premières entreprises de développement de logiciels basées en Lettonie

Découvrez les principales sociétés de développement de logiciels en Lettonie et leurs solutions innovantes dans notre dernier article. Découvrez comment ces leaders de la technologie peuvent vous aider à développer votre entreprise.

thecodest
Solutions pour les entreprises et les grandes entreprises

L'essentiel du développement de logiciels Java : Un guide pour une externalisation réussie

Explorez ce guide essentiel sur le développement réussi de logiciels Java outsourcing pour améliorer l'efficacité, accéder à l'expertise et assurer la réussite des projets avec The Codest.

thecodest
Développement de logiciels

Le guide ultime de l'externalisation en Pologne

L'essor de outsourcing en Pologne est dû aux progrès économiques, éducatifs et technologiques, qui favorisent la croissance des technologies de l'information et un climat propice aux entreprises.

TheCodest
Solutions pour les entreprises et les grandes entreprises

Le guide complet des outils et techniques d'audit informatique

Les audits informatiques garantissent la sécurité, l'efficacité et la conformité des systèmes. Pour en savoir plus sur leur importance, lisez l'article complet.

The Codest
Jakub Jakubowicz CTO & Co-Fondateur

Abonnez-vous à notre base de connaissances et restez au courant de l'expertise du secteur des technologies de l'information.

    A propos de nous

    The Codest - Entreprise internationale de développement de logiciels avec des centres technologiques en Pologne.

    Royaume-Uni - Siège

    • Bureau 303B, 182-184 High Street North E6 2JA
      Londres, Angleterre

    Pologne - Les pôles technologiques locaux

    • Parc de bureaux Fabryczna, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsovie, Pologne

      The Codest

    • Accueil
    • A propos de nous
    • Services
    • Études de cas
    • Savoir comment
    • Carrières
    • Dictionnaire

      Services

    • Conseil consultatif
    • Développement de logiciels
    • Développement backend
    • Développement frontal
    • Staff Augmentation
    • Développeurs backend
    • Ingénieurs en informatique dématérialisée
    • Ingénieurs des données
    • Autres
    • Ingénieurs AQ

      Ressources

    • Faits et mythes concernant la coopération avec un partenaire externe de développement de logiciels
    • Des États-Unis à l'Europe : Pourquoi les startups américaines décident-elles de se délocaliser en Europe ?
    • Comparaison des pôles de développement Tech Offshore : Tech Offshore Europe (Pologne), ASEAN (Philippines), Eurasie (Turquie)
    • Quels sont les principaux défis des CTO et des DSI ?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Conditions d'utilisation du site web

    Copyright © 2025 par The Codest. Tous droits réservés.

    fr_FRFrench
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek fr_FRFrench