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()

Références officielles

Bouton retour en haut de la page