🃏CSRF
CSRF : Cross-Site Request Forgery
Une attaque CSRF (Cross-Site Request Forgery) est une vulnérabilité de sécurité web où un attaquant trompe un utilisateur authentifié pour qu'il exécute des actions non désirées sur une application web dans laquelle il est authentifié. L'attaque profite de la confiance de l'application envers l'utilisateur, en envoyant des requêtes HTTP malveillantes au serveur web en utilisant les cookies de session de l'utilisateur.
Bien que l'attaque soit initiée par une requête côté client, son effet se manifeste côté serveur, où les actions non autorisées sont exécutées.
Fonctionnement d'une attaque CSRF
Préparation de la requête malveillante:
L'attaquant crée une requête HTTP malveillante qui exécutera une action non désirée sur une application web (comme changer un mot de passe, transférer de l'argent, etc.).
Induire l'utilisateur à exécuter la requête:
L'attaquant trompe l'utilisateur en l'incitant à cliquer sur un lien ou à visiter une page web contrôlée par l'attaquant. Ce lien ou cette page contient la requête malveillante.
Exécution de la requête par l'utilisateur authentifié:
Lorsqu'un utilisateur authentifié clique sur le lien ou visite la page malveillante, le navigateur de l'utilisateur envoie automatiquement la requête au serveur de l'application web, avec les cookies de session de l'utilisateur.
Action non désirée:
Le serveur, ne faisant pas la distinction entre une requête légitime de l'utilisateur et la requête forgée, exécute l'action non désirée.
Conséquences d'une attaque CSRF
Changement de mots de passe: L'attaquant peut changer le mot de passe de l'utilisateur.
Transferts financiers non autorisés: L'attaquant peut effectuer des transferts d'argent à partir du compte de l'utilisateur.
Modification de paramètres de compte: L'attaquant peut changer des paramètres sensibles du compte de l'utilisateur.
Envoi de messages non désirés: L'attaquant peut envoyer des messages ou des emails au nom de l'utilisateur.
Prévention des attaques CSRF
Tokens anti-CSRF:
Utiliser des tokens uniques et secrets (par exemple, synchronizer tokens ou CSRF tokens) pour chaque session ou chaque requête. Ces tokens sont inclus dans les formulaires HTML et vérifiés par le serveur.
Vérification des en-têtes:
Vérifier l'en-tête
RefererouOrigindes requêtes pour s'assurer qu'elles proviennent du même site.
Double Submit Cookie:
Envoyer un token anti-CSRF à la fois dans un cookie et dans un paramètre de requête. Le serveur vérifie que les deux correspondent.
SameSite Cookie Attribute:
Utiliser l'attribut
SameSitedes cookies pour limiter leur envoi aux requêtes provenant du même site.
Mis à jour