FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Attaques CSRF : définition, exemples et méthodes de prévention pour développeurs et utilisateurs

Les attaques Cross-Site Request Forgery (CSRF), aussi appelées attaques par contrefaçon de requête intersite, sont l'une des vulnérabilités web les plus anciennes et persistantes. Elles visent les actions modifiant l'état du serveur (comme les transferts d'argent ou changements de mot de passe) qui nécessitent une authentification. Un attaquant force ainsi un utilisateur authentifié à exécuter une requête malveillante à son insu.

Des pratiques de sécurité insuffisantes, comme l'absence de validation des requêtes, facilitent ces attaques. Découvrez ce qu'est une attaque CSRF et comment la prévenir, que vous soyez développeur ou utilisateur.

Comment les attaques CSRF vous impactent-elles ?

Une attaque CSRF exploite les sessions actives pour effectuer des actions non autorisées. Elle utilise les identifiants de session, cookies ou failles serveur pour usurper l'identité de l'utilisateur.

Les protections anti-CSRF bloquent les interactions cross-domain malveillantes. Sans elles, un attaquant peut injecter un script via une balise malveillante, exploiter la session utilisateur et rediriger vers un site piégé, souvent via ingénierie sociale (e-mails phishing).

Conséquences : vol de fonds, modification de comptes, perte d'accès. Des cas réels incluent des détournements bancaires ou changements de mots de passe.

Comment les attaquants détournent vos sessions avec CSRF : exemples concrets

Les cibles principales sont les actions authentifiées nécessitant une interaction involontaire : requêtes GET, POST, PUT, DELETE.

  • GET : Récupère des données (ex. recherche).
  • POST : Soumet des formulaires (ex. login, inscription).
  • DELETE : Supprime des ressources (ex. suppression de compte).
  • PUT : Met à jour (ex. changement de nom).

Les attaquants combinent souvent CSRF avec session hijacking pour modifier l'IP et rediriger vers un faux formulaire.

Exemple d'attaque CSRF via requête GET

Sur un site e-commerce vulnérable utilisant GET pour les paiements :

https://example.com/pay?amount=10&account=ABC
Un attaquant modifie :
https://example.com/pay?amount=20000&account=ATTACKER
Un clic innocent transfère les fonds.

Évitez les GET pour les actions modifiant l'état.

Exemple d'attaque CSRF via requête POST

Les POST ne sont pas immunes. Un formulaire légitime :

<form action="https://example.com/pay" method="POST">
  <input type="text" name="account">
  <input type="number" name="amount">
  <input type="submit" value="Payer">
</form>
L'attaquant crée :
<body onload="document.getElementById('form').submit()">
  <form action="https://example.com/pay" id="form" method="POST">
    <input type="hidden" name="account" value="ATTACKER">
    <input type="hidden" name="amount" value="30000">
  </form>
</body>
Soumission automatique au chargement.

Similaire pour PUT (changement mot de passe) : redirection vers lien de reset e-mail vers l'attaquant.

Comment prévenir les attaques CSRF en tant que développeur

Attaques CSRF : définition, exemples et méthodes de prévention pour développeurs et utilisateurs

Utilisez des jetons CSRF (tokens synchronisés) uniques et changeants par session, au lieu de cookies seuls. Frameworks comme Laravel, Django ou Spring les intègrent nativement.

Implémentez 2FA pour les actions sensibles. Échappez le HTML des inputs pour bloquer XSS combiné. Suivez OWASP guidelines.

Comment prévenir les attaques CSRF en tant qu'utilisateur

Choisissez des sites fiables, utilisez navigateurs sécurisés (HTTPS Everywhere), activez 2FA. Évitez de rester connecté, méfiez-vous des liens suspects.

Ne stockez pas de mots de passe dans le navigateur.

Renforcez votre sécurité web

Testez régulièrement vos apps (pentests, outils comme Burp Suite). Équilibrez les protections sans introduire nouvelles vulnérabilités.

[]