Qu’est-ce que XSS ?
XSS, ou Cross-Site Scripting, est une faille de sécurité d’une application web.
Elle permet à un attaquant d’injecter du code malveillant dans une page affichée à un utilisateur.
Ce code est souvent écrit en JavaScript. Il s’exécute sans que l’utilisateur s’en rende compte.
À quoi sert XSS ?
XSS n’est pas un outil, mais une méthode utilisée par des attaquants.
Elle sert à contourner les protections d’un site pour accéder aux données d'autres utilisateurs.
Par exemple, elle permet de voler des identifiants, détourner des sessions ou forcer des actions sur un site.
Un pirate peut exploiter XSS pour compromettre un compte ou manipuler un tableau de bord interne.
Comment fonctionne XSS ?
XSS repose sur l’injection de code dans des champs non sécurisés d’un site web.
Le script est ensuite affiché dans la page et exécuté par le navigateur de la victime.
Les données non filtrées (comme les commentaires ou les champs de recherche) sont les plus à risque.
Il existe plusieurs types de XSS :
- XSS réfléchi : le code est envoyé et exécuté en une seule requête.
- XSS persistant : le code est stocké sur le serveur (ex. : dans une base de données).
- XSS DOM-based : le script est injecté côté client, via la structure de la page.
Différences avec des notions proches
XSS est souvent confondu avec l’injection SQL, une autre faille courante.
L’injection SQL cible une base de données. XSS vise l’utilisateur final d’un site web.
CSRF (Cross-Site Request Forgery) est aussi différent. Il exploite la confiance entre un navigateur et un site.
XSS, lui, exploite la confiance entre l'utilisateur et le contenu affiché.
Exemples ou cas d’usage concrets
Un site permet aux utilisateurs de laisser des commentaires non vérifiés.
Un pirate y insère un script JavaScript qui récupère les cookies de session du visiteur.
Quand la page s’affiche, le script s’exécute et envoie les cookies à l’attaquant.
Ce cookie peut permettre de se faire passer pour l’utilisateur et accéder à son compte.
Autre exemple : un formulaire de recherche affiche les résultats sans filtrer les entrées de l’utilisateur.
Un pirate intègre un script dans la barre de recherche. Au lieu d’un résultat, la victime exécute le script piégé.