Nettoyer une donnée ne suffit pas toujours : une adresse e-mail correctement assainie peut malgré tout être mal formée, ou un champ « âge » peut contenir une valeur négative parfaitement propre techniquement, mais absurde dans son contexte. Valider consiste à vérifier que la donnée a effectivement le sens attendu, pas seulement qu’elle est débarrassée de caractères dangereux.
Fonctionnement dans WordPress
Des fonctions comme is_email() vérifient qu’une chaîne respecte le format d’une adresse électronique valide, tandis que l’API des réglages (register_setting()) accepte un rappel de validation personnalisé exécuté avant l’enregistrement. L’API REST de WordPress permet, elle, de déclarer un schéma validate_callback et sanitize_callback distincts pour chaque argument d’un point de terminaison.
Exemple
register_rest_route('wpm/v1', '/note', [
'methods' => 'POST',
'args' => [
'valeur' => [
'required' => true,
'validate_callback' => fn($v) => is_numeric($v) && $v >= 0 && $v <= 5,
],
],
'callback' => 'wpm_enregistrer_note',
]);
À ne pas confondre avec
La validation répond à la question « cette donnée a-t-elle un sens ? », tandis que l’assainissement répond à « cette donnée est-elle dangereuse ? » : une donnée peut être parfaitement propre et néanmoins invalide, comme une date au 31 février. Les deux étapes se combinent, généralement dans cet ordre : on valide d’abord que la donnée respecte le format attendu, quitte à rejeter la requête entière si ce n’est pas le cas, puis on assainit ce qui doit malgré tout être conservé sous une forme plus permissive, avant tout enregistrement en base.