CSRF
CSRF (cross-site request forgery) est une vulnérabilité où l'attaquant trompe un utilisateur connecté pour lui faire envoyer sans le savoir une requête malveillante au site ciblé.
Objectif
Empêcher les attaquants d'emprunter la session de la victime pour effectuer des opérations non autorisées.
Mécanisme
L'attaquant héberge une page malveillante contenant <form> ou <img> qui envoie une requête au site cible. Le navigateur joint automatiquement les cookies et le serveur la prend pour l'utilisateur. Défenses : tokens CSRF (jetons synchroniseurs), cookies SameSite, vérification des en-têtes Origin/Referer.
Cas d’usage
- Transferts bancaires falsifiés
- Modification des paramètres de compte
- Publication de contenu ou de commentaires
- Opérations de suppression de données
Exemples
- entrée
<form action="bank.com/transfer" method="POST">OutputTransfer initiated riding on cookiesCross-site forgery
Erreurs courantes
- Relying solely on cookie authentication without a CSRF token
- Add a CSRF token or SameSite=Strict
Termes associés
XSS
XSS (cross-site scripting) est l'attaque où l'attaquant injecte des scripts malveillants dans une page qui s'exécutent dans le navigateur d'autres utilisateurs ; il existe sous formes stockée, réfléchie et basée DOM. GLOSSAIRE
Cookie
Un cookie est un couple clé-valeur défini par le serveur et stocké par le navigateur, envoyé automatiquement avec les requêtes de même origine pour la gestion de session et d'état. GLOSSAIRE
SameSite Cookie
L'attribut de cookie SameSite (Strict/Lax/None) contrôle si le navigateur envoie les cookies lors des requêtes inter-sites, servant de défense contre le CSRF. GLOSSAIRE
SQL Injection
L'injection SQL consiste pour un attaquant à insérer des fragments SQL malveillants dans une chaîne de requête afin que la base exécute des commandes non voulues. GLOSSAIRE