Cross-Site Scripting (XSS) : Attaque et défense
Les attaques XSS injectent des scripts malveillants pour voler des jetons de session. Apprenez les XSS réfléchi, stocké et basé sur le DOM avec des exemples réels.
Table des matières
Qu'est-ce que le XSS ?
Le Cross-Site Scripting (XSS) permet à un attaquant d'injecter du code JavaScript malveillant dans des pages web légitimes. Quand d'autres utilisateurs visitent la page, leur navigateur exécute le script malveillant.
Types de XSS
XSS réfléchi (non persistant)
Le script malveillant est dans l'URL. L'attaquant envoie un lien piégé à la victime. Quand la victime clique, le script est inclus dans la réponse et exécuté.
https://exemple.fr/search?q=<script>vol_cookies()</script>
XSS stocké (persistant)
Le script est stocké dans la base de données du site (commentaires, profils). Chaque utilisateur qui charge cette page exécute le script. Le type le plus dangereux.
XSS basé sur le DOM
La manipulation se produit côté client via JavaScript qui traite des données non fiables.
Ce que XSS peut faire
- Voler des cookies de session → prise de contrôle de compte
- Keylogging → vol de mots de passe saisis
- Redirection vers des sites malveillants
- Exécution d'actions au nom de l'utilisateur
Prévention
Encodez les sorties : Tout contenu utilisateur affiché doit être encodé en HTML avant d'être rendu.
Content Security Policy (CSP) : L'en-tête HTTP CSP dit au navigateur quels scripts sont autorisés à s'exécuter.
Politique HttpOnly pour les cookies : Les cookies avec l'attribut HttpOnly ne sont pas accessibles via JavaScript.