check_ajax_referer()

Définition : check_ajax_referer() vérifie le nonce envoyé avec une requête AJAX WordPress. Malgré son nom, elle contrôle un jeton de sécurité et ne constitue pas une vérification fiable de l’en-tête Referer.

Terminologie

Terme officiel : check_ajax_referer()

Autres appellations : Contrôle AJAX CSRF

À quoi cela sert

Elle aide à refuser les appels asynchrones déclenchés sans jeton approprié, notamment ceux qui modifient des réglages ou des métadonnées.

Comment cela fonctionne

La fonction reçoit l’action attendue, la clé du paramètre et éventuellement un indicateur de gestion automatique de l’échec. Elle s’utilise dans le callback PHP d’un endpoint AJAX.

Dans quel contexte l’utiliser

À placer au début d’un handler AJAX, avec un contrôle de capacité indépendant et une validation des entrées.

Exemple concret

Une interface ATOOLPHA veut enregistrer un état documentaire sans recharger la page.

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
add_action( 'wp_ajax_atoolpha_demo_statut', function () {
    check_ajax_referer( 'atoolpha_demo_ajax', 'nonce' );
    if ( ! current_user_can( 'manage_options' ) ) {
        wp_send_json_error( array( 'message' => 'Interdit.' ), 403 );
    }
    wp_send_json_success( array( 'message' => 'Contrôles réussis.' ) );
} );
// Le JS doit envoyer action=atoolpha_demo_statut et nonce=...

Explication pas à pas de l’exemple

1. WordPress oriente la requête grâce au paramètre action. 2. Le nonce transmis est vérifié. 3. La capacité est contrôlée. 4. Une réponse JSON est émise seulement après ces contrôles.

Résultat attendu

Une requête valide reçoit une réponse de succès pédagogique ; cet exemple ne modifie aucune métadonnée.

Mise en pratique guidée

Depuis un bouton de démonstration en administration, transmettre action et nonce à admin-ajax.php. Observer la réponse lorsque le nonce est valide, puis absent. Tester enfin un compte sans la capacité requise. Le scénario distingue une erreur de jeton d’un refus de permission, et aide à concevoir des messages fiables côté navigateur.

Précautions et limites

Le contrôle du nonce ne dispense pas des contrôles de droit et d’entrée. La fonction peut interrompre automatiquement une requête invalide avec une réponse non JSON uniforme.

À ne pas confondre

check_ajax_referer() vérifie le nonce ; wp_ajax_{$action} désigne le hook qui oriente la requête ; wp_send_json_success() sérialise une réponse.

Visualisation du mécanisme

Lecture séquentielle : Client AJAX → nonce → capacité → réponse JSON.

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_ajax_{$action}
  • wp_send_json_success()
  • current_user_can()

Références officielles

Bouton retour en haut de la page