esc_url_raw()
Définition : esc_url_raw() prépare une URL pour des traitements ou un stockage, sans l’encoder comme une valeur d’attribut HTML. Elle est proche de sanitize_url() dans le fonctionnement actuel de WordPress.
Comprendre et utiliser
À quoi sert ce terme ?
Elle aide à normaliser des adresses provenant de formulaires ou de réglages avant leur réutilisation. Cela évite de mélanger le nettoyage d’une donnée avec son échappement final au moment de l’affichage.
Fonctionnement technique
La fonction accepte une URL et applique des contrôles propres aux protocoles admis. Elle ne prouve pas que la destination est fiable, accessible ou autorisée pour une requête sortante.
Dans quels contextes l’utiliser ?
L’utiliser au moment de préparer une donnée URL pour le stockage. Pour produire un href HTML, appeler ensuite esc_url() au point de sortie.
Cas concret : ATOOLPHA
ATOOLPHA accepte l’adresse d’une référence documentaire fournie dans un réglage et souhaite pouvoir la présenter dans une page publique.
Exemple de code commenté
Extrait PHP destiné à un plugin ou à un template WordPress, dans le contexte indiqué ; pas au contenu HTML de l’article.
<?php
$raw = 'https://developer.wordpress.org/';
$stored = esc_url_raw( $raw );
if ( '' !== $stored ) {
echo '<a href="' . esc_url( $stored ) . '">Documentation</a>';
}
Décryptage de l’exemple
esc_url_raw() est appliqué à la valeur destinée à être conservée ; esc_url() est utilisé seulement au rendu du href. L’exemple ne déclenche aucune requête HTTP vers l’adresse.
Résultat attendu
Le navigateur reçoit un lien dont l’URL a été nettoyée pour le stockage puis échappée pour l’attribut HTML.
Exercice pratique et vérification
Essayer une URL HTTPS, une URL relative et un schéma javascript: dans un test local. Contrôler les résultats et l’affichage final.
Précautions et limites
Ne pas utiliser cette fonction seule pour autoriser une requête HTTP côté serveur. Le risque SSRF exige d’autres règles : destination, résolution DNS et redirections doivent être maîtrisées.
À ne pas confondre
esc_url_raw() concerne un traitement de donnée ; esc_url() prépare une URL pour une sortie HTML ; wp_safe_remote_get() traite des aspects distincts de requête HTTP.
Diagnostic avancé
Si une URL valide semble altérée, vérifier son protocole et les caractères saisis ; comparer la valeur brute au résultat nettoyé.
Choix d’architecture et déploiement
Les URL saisies peuvent servir à plusieurs usages : lien public, téléchargement serveur ou redirection. Chacun exige une politique distincte ; une URL correctement nettoyée pour l’affichage ne doit pas devenir automatiquement une destination réseau autorisée côté serveur.
Contrôle avant intégration
Valider la politique de destinations permises, les protocoles admis et la séparation stricte entre nettoyage et sortie HTML.
Notions associées
- esc_url()
- Validation des données
- wp_kses()
