(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start' : new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f) ; })(window,document,'script','dataLayer','GTM-5LHNRP9') ; Sécurité des applications web - vulnérabilité XSS - 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
2020-10-14
Développement de logiciels

Sécurité des applications web - vulnérabilité XSS

Lukasz Kolko

Les attaques XSS permettent aux attaquants d'injecter des scripts côté client dans les pages web visualisées par d'autres utilisateurs. Les principaux effets de cette vulnérabilité sont la possibilité d'exécuter des actions dans le contexte de l'utilisateur connecté, et de lire des données dans le contexte de l'utilisateur connecté.

Scénario d'attaque

  1. L'attaquant localise la vulnérabilité XSS sur un site web utilisé par la victime, par exemple le site web d'une banque.
  2. La victime est actuellement connectée à cette page
  3. L'auteur de l'attaque envoie à la victime une adresse URL falsifiée.
  4. La victime clique sur l'URL
  5. Sur le site de la victime banque site web, JavaScript code commence à s'exécuter afin d'intercepter le message de l'utilisateur. données ou exécuter un virement en son nom sur le compte de l'attaquant

Il convient de noter que les opérations effectuées pour le compte de la victime peuvent être invisibles pour cette dernière, car elles peuvent se dérouler en arrière-plan en utilisant le système d'information de la banque. API, ou l'attaquant peut les exécuter ultérieurement avec les données nécessaires à l'authentification, les jetons, les cookies, etc.

Types de XSS

1. XSS réfléchi

Il s'agit d'un code HTML/JavaScript contenu dans n'importe quel paramètre (par exemple GET, POST ou cookie) qui est affiché en réponse.

Une page avec une entrée de texte pour rechercher quelque chose qui met le paramètre ?search=foo dans la fin de l'URL lors de l'interrogation de l'API. Après avoir saisi une phrase, si elle n'est pas trouvée, un message de retour est placé dans l'ex HTML.

<div>Aucun résultat trouvé pour <b>foo</b></div>

Nous pouvons essayer de mettre l'URL ?search=..

2.DOM XSS

C'est le cas lorsque son exécution est rendue possible par l'utilisation de fonctions dangereuses dans JavaScript, telles que `eval` ou `innerHtml`. L'"exemple vivant" ci-dessous montre une attaque DOM XSS basée sur l'élément `innerHtml` fonction.

3. XSS stocké

Il s'agit d'un cas où le code malveillant est écrit du côté du serveur. Par exemple, nous pouvons envoyer un commentaire contenant un code malveillant à un article de blog qui est téléchargé sur le serveur. Sa tâche consiste, par exemple, à attendre la modération de l'administrateur, puis à voler ses données de session, etc.

Méthodes d'injection

1. Dans le contenu de la balise

`onerror=alert('XSS')`en

<img src onerror="alert('XSS')" />

2. Dans le contenu de l'attribut

`" onmouseover=alert('XSS')` en

<div class="" onmouseover="alert('XSS')""></div>

  1. Dans le contenu de l'attribut sans les guillemets

x onclick=alert('XSS')en

<div class="x" onclick="alert('XSS')"></div>

  1. Dans le cadre de la hrefattribut ef

javascript:alert('XSS') en

<a href="javascript:alert('XSS')"></a>

  1. Dans la chaîne de caractères du code JavaScript

";alert('XSS')// en

<script>let username="";alert('XSS')//";</script>
  1. Dans l'attribut avec l'événement JavaScript

&#39 ;);alert('XSS')// où &#39 ; est un guillemet simple, en

<div onclick="change('&#39;);alert('XSS')//')">Jean</div>

  1. Dans le cadre de la href dans le protocole JavaScript

);alert(1)// où %27 est un guillemet simple, en

<a href="javascript:change('%27);alert(1)//')">cliquer</a>


Exemple concret

Méthodes de défense

  1. Encodage des données à l'aide de fonctions intégrées présentes dans de nombreux les langages de programmation.
  2. Utiliser des systèmes de modèles avec encodage automatique. La plupart des frameworks populaires qui utilisent de tels systèmes protègent les données suivantes nous de l'injection XSS (DjangoModèles, Vue, React etc.)
  3. N'utilisez pas de fonctions telles que eval ou Fonction avec des données d'utilisateurs non fiables.
  4. N'utilisez pas de fonctions et de propriétés qui attribuent un code HTML directement aux éléments de l'arbre DOM, par exemple, innerHTML, outerHTML, insertAdjacentHTML, ocument.write. Au lieu de cela, vous pouvez utiliser des fonctions qui attribuent directement du texte à ces éléments, telles que texteContenu ou innerText.
  5. Soyez prudent lorsque vous redirigez l'utilisateur vers une URL qu'il contrôle. Risque d'injection location = 'javascript('XSS')'.
  6. Filtrer le HTML à l'aide de bibliothèques telles que DOMPurify.
  7. Attention au téléchargement .html ou .svg fichiers. Vous pouvez créer un domaine distinct à partir duquel les fichiers téléchargés seront servis.
  8. Utiliser le Politique de sécurité du contenu mécanisme.
  9. Jetez un coup d'œil aux filtres anti-XSS intégrés dans la plupart des navigateurs populaires.

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

En savoir plus :

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

API Rails et CORS. Un soupçon de conscience

Pourquoi devriez-vous (probablement) utiliser Typescript ?

Articles connexes

Illustration d'une application de soins de santé pour smartphone avec une icône de cœur et un graphique de santé croissant, avec le logo The Codest, représentant la santé numérique et les solutions HealthTech.
Développement de logiciels

Logiciels de santé : Types, cas d'utilisation

Les outils sur lesquels les organismes de santé s'appuient aujourd'hui n'ont plus rien à voir avec les dossiers papier d'il y a quelques décennies. Les logiciels de santé prennent désormais en charge les systèmes de santé, les soins aux patients et les...

LE CODEST
Illustration abstraite d'un diagramme à barres en déclin avec une flèche montante et une pièce d'or symbolisant la rentabilité ou les économies. Le logo The Codest apparaît dans le coin supérieur gauche avec le slogan "In Code We Trust" sur un fond gris clair.
Développement de logiciels

Comment développer votre équipe de développement sans perdre la qualité du produit ?

Vous agrandissez votre équipe de développement ? Apprenez à vous développer sans sacrifier la qualité du produit. Ce guide couvre les signes indiquant qu'il est temps de passer à l'échelle supérieure, la structure de l'équipe, le recrutement, le leadership et les outils....

LE CODEST
Illustration d'une interface d'application mobile de fintech avec un symbole de l'euro, des barres d'analyse, une icône d'utilisateur et des paramètres d'engrenage, à côté du logo The Codest et du slogan “In Code We Trust”.”
Développement de logiciels

Flutter vs. Dart

La plupart des gens mélangent Flutter et Dart comme s'il s'agissait de la même chose, d'autant plus que Dart et Flutter travaillent étroitement ensemble dans le développement multiplateforme. Les deux sont essentiels pour construire des...

LE CODEST
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

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 © 2026 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 es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian is_ISIcelandic fr_FRFrench