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

Références officielles

Bouton retour en haut de la page