Table des matières

Résumé des attaques CSRF

Définition

Une CSRF (*Cross-Site Request Forgery*, ou falsification de requête intersites) consiste à tromper le navigateur d’une personne déjà connectée pour qu’il envoie une requête non désirée à un site.

Le navigateur peut joindre automatiquement les cookies de session à cette requête. Le site risque alors de la traiter comme si la personne l’avait volontairement effectuée.

Exemple simplifié

Imaginons qu’un site permette de changer l’adresse e-mail avec une requête :

POST /modifier-email
email=nouvelle-adresse@example.test

Si le site ne vérifie pas que la requête est légitime, une page malveillante pourrait inciter le navigateur d’une personne connectée à envoyer une requête de ce type. Le navigateur peut y joindre automatiquement le cookie de session.

Conditions favorables à une attaque

Risques

Selon les fonctions du site, une CSRF peut entraîner une modification de paramètres, la publication d’un contenu, ou une autre action effectuée avec les droits de la personne connectée.

Prévention

Exemple de formulaire avec jeton

Le serveur ajoute au formulaire un jeton imprévisible associé à la session :

<form method="post" action="/modifier-email">
  <input type="hidden" name="csrf_token" value="JETON_GENERE_PAR_LE_SERVEUR">
  <input type="email" name="email">
  <button type="submit">Modifier</button>
</form>

Lors de la réception, le serveur compare le jeton envoyé à celui attendu pour la session. Un jeton réel doit être généré et vérifié par le serveur.

Erreurs à éviter

À retenir

Une CSRF exploite le fait que le navigateur peut joindre automatiquement les informations de session à une requête. Pour s’en protéger, vérifiez côté serveur que les requêtes sensibles sont légitimes, notamment avec des jetons CSRF, et utilisez SameSite comme défense complémentaire.