wp_nonce_field()
Définition : wp_nonce_field() produit un champ de formulaire contenant un nonce WordPress lié à une action déterminée. Le serveur peut ensuite vérifier ce jeton avant d’accepter une requête sensible.
Terminologie
Terme officiel : wp_nonce_field()
Autres appellations : Champ nonce, Protection CSRF de formulaire
À quoi cela sert
Elle ajoute une protection contre certaines requêtes intersites forgées, notamment lorsqu’un administrateur déclenche une action de sauvegarde depuis son navigateur.
Comment cela fonctionne
La fonction génère une entrée cachée nommée et peut inclure un champ de provenance. La valeur doit être relue et vérifiée côté serveur avec wp_verify_nonce() ou une fonction de contrôle adaptée.
Dans quel contexte l’utiliser
À intégrer dans les formulaires de modification administrative qui entraînent un changement d’état ou un enregistrement.
Exemple concret
Un formulaire de mise à jour du niveau documentaire comporte un jeton lié précisément à cette action.
Exemple de code commenté
Extrait pédagogique PHP pour extension WordPress : adapter au contexte et tester sur un environnement de développement avant tout usage.
<?php
// À placer dans un formulaire déjà créé par WordPress.
wp_nonce_field( 'atoolpha_modifier_niveau', 'atoolpha_nonce' );
echo '<label for="atoolpha_niveau">Niveau</label>';
echo '<input id="atoolpha_niveau" name="atoolpha_niveau" type="text">';
// Le handler doit vérifier nonce ET permissions avant sauvegarde.
Explication pas à pas de l’exemple
1. wp_nonce_field() ajoute un champ caché dans le formulaire. 2. Son action et son nom sont explicites. 3. Un champ métier est affiché. 4. Le code de traitement devra vérifier la valeur postée.
Résultat attendu
Le formulaire contient un nonce à transmettre lors de la soumission ; aucun enregistrement n’est réalisé par cette fonction seule.
Mise en pratique guidée
Afficher un formulaire de démonstration et inspecter les champs cachés générés. Soumettre le formulaire avec le jeton intact, puis sans ce champ. Le traitement serveur doit accepter seulement les soumissions possédant un nonce valide ET les permissions requises. Documenter explicitement le nom du champ pour éviter une divergence entre formulaire et handler.
Précautions et limites
Un nonce WordPress n’est pas à usage unique et peut expirer. Il n’autorise aucune opération à lui seul : contrôler également les capacités de l’utilisateur.
À ne pas confondre
wp_nonce_field() insère un jeton ; wp_verify_nonce() le vérifie ; current_user_can() décide du droit de modification.
Visualisation du mécanisme
Lecture séquentielle : Formulaire → jeton → soumission → vérifications → écriture.
Schéma textuel du déroulement : son exécution dépend du contexte et des contrôles décrits ci-dessus.
Termes associés
- wp_verify_nonce()
- check_admin_referer()
- current_user_can()
