Les nonces (Number used ONCE, c'est-à-dire nombre utilisé une seule fois) sont un mécanisme qui permet de prévenir les attaques de type Cross-Site Request Forgery (CSRF).
Ils sont utilisés pour protéger les formulaires dans le tableau de bord ou pour protéger les liens qui mènent à une action, par exemple un lien pour supprimer un enregistrement dans le tableau de bord.
Leur rôle est de d'assurer que l'envoi du formulaire ou le clic sur le lien qui a déclenché l'action provient légitimement de votre site et non d'un script ou d'un lien malicieux.
Pour s'en assurer, la page qui traite le formulaire ou la page vers laquelle le lien mène vérifiera si le nonce est valide avant d'effectuer le traitement.
Les nonces peuvent être vus comme une clé à usage unique qui :
Si la clé était volée par un utilisateur malicieux, ce dernier ne pourrait vraisemblablement pas l'utiliser pour effectuer quoi que ce soit.
Il n'est pas utile de mettre en place un mécanisme de nonce sur un formulaire grand public.
Le nonce servira à protéger les opérations qui nécessitent qu'un usager soit authentifié.
Le noyau WordPress lui-même utilise les nonces pour protéger ses formulaire et ses liens menant à une action sensible.
Par exemple, dans le tableau de bord, le formulaire pour modifier un usager contient un nonce :
Autre exemple, dans le tableau de bord, le lien pour supprimer une page contient lui aussi un nonce :
Par définition, un nonce doit être impossible à deviner. La fonction PHP uniqueid() ne permet donc pas de générer un nonce acceptable.
La fonction WordPress wp_create_nonce(), qui est définie dans le fichier wp-includes/pluggable.php, permet de générer un nonce. Si vous consultez le code de cette fonction, vous constaterez que le nonce est généré à partir de :
Il ne s'agit pas d'un nombre totalement indevinable mais il offre un niveau de sécurité suffisant.
Le cycle de vie du nonce va comme suit :
Le traitement ne pourra donc pas avoir lieu si un faux formulaire était soumis ou si un lien était trafiqué.
WordPress met à votre disposition plusieurs fonctions pour faciliter le travail avec les nonces :
« Les Nonces WordPress ». Codex WordPress. http://codex.wordpress.org/fr:Les_Nonces_WordPress
▼Publicité