wp_nonce_url()
Définition : wp_nonce_url() ajoute un nonce WordPress à une adresse destinée à déclencher une action précise. Elle permet de lier une URL à une vérification serveur de l’opération demandée.
Terminologie
Terme officiel : wp_nonce_url()
Autres appellations : URL avec nonce
À quoi cela sert
Elle est utile lorsqu’une interface de gestion comporte une action accessible par un lien qui doit inclure un jeton de sécurité.
Comment cela fonctionne
La fonction reçoit une URL, une action et éventuellement un nom de paramètre. Elle renvoie l’URL augmentée du jeton ; le traitement cible reste responsable de le vérifier.
Dans quel contexte l’utiliser
À réserver aux actions qui justifient réellement un lien sécurisé. Pour une opération modifiant des données, privilégier un formulaire POST.
Exemple concret
Un tableau d’administration affiche un lien de contrôle interne protégé, sans réaliser lui-même de suppression.
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
// Sur un écran administrateur, action et droits contrôlés ailleurs.
$url = admin_url( 'admin.php?page=atoolpha-rapport' );
$url = wp_nonce_url( $url, 'atoolpha_voir_rapport' );
echo '<a href="' . esc_url( $url ) . '">Voir le rapport</a>';
// La page cible doit vérifier le nonce ET les permissions.
Explication pas à pas de l’exemple
1. L’URL d’administration est construite. 2. wp_nonce_url() ajoute un paramètre de jeton lié à l’action. 3. esc_url() prépare l’adresse affichée. 4. La cible doit assurer les validations.
Résultat attendu
Le lien transporte un nonce adapté au contexte de navigation, mais ne modifie aucune donnée à lui seul.
Mise en pratique guidée
Construire un lien administratif de lecture protégé avec une action de nonce précise. Vérifier que le jeton apparaît dans l’URL créée, puis qu’un traitement de test sait le contrôler. Examiner les traces réseau pour comprendre pourquoi une opération de suppression ne devrait pas dépendre d’un simple lien GET, même accompagné d’un nonce.
Précautions et limites
Les nonces placés dans les URL peuvent apparaître dans des historiques ou journaux. Éviter toute opération destructive en GET et garder des contrôles d’accès côté serveur.
À ne pas confondre
wp_nonce_url() fabrique un lien ; wp_nonce_field() construit un champ caché ; wp_safe_redirect() contrôle une destination de redirection.
Termes associés
- wp_create_nonce()
- check_admin_referer()
- esc_url()
