CSRF (Cross-Site Request Forgery)
Le CSRF, ou Cross-Site Request Forgery, est une vulnérabilité de sécurité qui permet à un attaquant d’exécuter des actions non autorisées sur un site web au nom d’un utilisateur authentifié. Cette attaque repose sur la confiance qu’un site a envers le navigateur de l’utilisateur. En d’autres termes, si un utilisateur est connecté à un site web et qu’il visite un autre site malveillant, ce dernier peut envoyer des requêtes au premier site en utilisant les informations d’identification de l’utilisateur, sans que celui-ci en soit conscient.
Comment fonctionne le CSRF ?
Pour mieux comprendre le fonctionnement du CSRF, il est essentiel de connaître les éléments suivants :
- Un utilisateur est connecté à un site web (par exemple, un site bancaire).
- Il visite un site malveillant qui contient un code malveillant.
- Ce code envoie une requête au site web sur lequel l’utilisateur est connecté, en utilisant les cookies de session de l’utilisateur.
Voici un exemple simple de ce à quoi pourrait ressembler une requête CSRF :
<form action="https://banque-exemple.com/transfer" method="POST">
<input type="hidden" name="montant" value="1000">
<input type="hidden" name="destinataire" value="attacker">
<input type="submit" value="Envoyer">
</form>Dans cet exemple, si l’utilisateur est connecté à son compte bancaire et qu’il visite le site malveillant, le formulaire sera soumis automatiquement, entraînant un transfert d’argent vers le compte de l’attaquant.
Conséquences d’une attaque CSRF
Les conséquences d’une attaque CSRF peuvent être graves. Voici quelques exemples :
- Transfert d’argent non autorisé.
- Changement de mot de passe ou d’adresse e-mail de l’utilisateur.
- Publication de contenu non désiré sur un réseau social.
Ces actions peuvent non seulement causer des pertes financières, mais aussi nuire à la réputation de l’utilisateur et du site web concerné.
Prévention des attaques CSRF
Il existe plusieurs méthodes pour se protéger contre les attaques CSRF. Voici quelques-unes des plus courantes :
- Token CSRF : L’une des méthodes les plus efficaces consiste à utiliser un token CSRF. Ce token est un identifiant unique généré par le serveur et inclus dans chaque formulaire. Lorsqu’une requête est envoyée, le serveur vérifie que le token est valide avant d’exécuter l’action.
- Vérification de l’origine : Les serveurs peuvent également vérifier l’en-tête HTTP « Referer » pour s’assurer que la requête provient d’une source autorisée. Si l’en-tête ne correspond pas, la requête peut être rejetée.
Voici un exemple de mise en œuvre d’un token CSRF dans un formulaire :
<form action="https://banque-exemple.com/transfer" method="POST">
<input type="hidden" name="csrf_token" value="TOKEN_GENERÉ">
<input type="hidden" name="montant" value="1000">
<input type="hidden" name="destinataire" value="attacker">
<input type="submit" value="Envoyer">
</form>Dans cet exemple, le serveur doit vérifier que le token « TOKEN_GENERÉ » est valide avant d’effectuer le transfert.
Conclusion
Le CSRF est une vulnérabilité sérieuse qui peut avoir des conséquences désastreuses pour les utilisateurs et les entreprises. En comprenant comment ces attaques fonctionnent et en mettant en œuvre des mesures de sécurité appropriées, il est possible de réduire considérablement le risque d’attaques CSRF. La sensibilisation à cette menace est essentielle pour protéger les données sensibles et maintenir la confiance des utilisateurs dans les services en ligne.


