# CSRF

> Attaque qui piège un utilisateur déjà connecté pour lui faire exécuter, à son insu, une action non désirée sur un site où il est authentifié.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/csrf/

Le navigateur envoie automatiquement les cookies de session d'un site à chaque requête vers ce site, où qu'elle soit déclenchée. Un site malveillant peut exploiter ce comportement en glissant un formulaire ou une image piégée qui envoie une requête vers votre site pendant que vous êtes connecté ailleurs dans le même navigateur : le serveur, voyant un cookie valide, exécute l'action sans se douter qu'elle n'a jamais été voulue.

## Protection dans WordPress

WordPress se défend contre ce risque grâce aux nonces : chaque formulaire ou lien d'action sensible embarque un jeton unique et daté, généré par `wp_nonce_field()` ou `wp_create_nonce()`, et vérifié côté serveur avec `check_admin_referer()` ou `wp_verify_nonce()` avant d'exécuter la moindre modification.

## Exemple

```
// dans le formulaire
wp_nonce_field('wpm_suppression_article', 'wpm_nonce');

// au traitement
if (!check_admin_referer('wpm_suppression_article', 'wpm_nonce')) {
    wp_die(__('Requête invalide.', 'wpm'));
}
```

## À ne pas confondre avec

Le CSRF force l'utilisateur à exécuter une action à son insu, alors que le XSS (« cross-site scripting ») injecte du code qui s'exécute directement dans son navigateur : les deux se combinent parfois, un XSS pouvant servir à générer automatiquement une requête CSRF. Une action déclenchée par une simple requête `GET` sans nonce, y compris un lien de suppression cliquable, reste une des erreurs les plus fréquentes qui ouvre la porte à ce type d'attaque, car un lien peut être chargé automatiquement par un navigateur sans le moindre clic volontaire de la victime.
