J'ai rencontré des situations dans lesquelles des personnes ont utilisé esc_html()
ou esc_url()
avec certaines fonctions WP telles que home_url('/')
. Un exemple dans la balise d'ancrage d'ouverture de <a>
renvoie à la page d'accueil telle que celle-ci:
<a href="<?php echo esc_url( home_url( '/' ) ); ?>">
Comment savez-vous quelles WP fonctions doivent être évitées et est-ce important si vous utilisez esc_html()
ou esc_url()
?
Tout conseil ou orientation serait merveilleux.
Tout ce qui retourne des données.
Cela est dû au fait que vous devez toujours vous échapper tardivement afin d'éviter tout doute sur une variable.
Si la sortie des API telles que home_url
était pré-échappée, cela ne serait plus vrai. Cela introduirait également un double échappement, qui peut être utilisé pour dépasser un échappement dans certains scénarios.
Quelques notes supplémentaires:
the_permalink
dans esc_url
, etc., les fonctions d'échappement sont toujours des fonctions, ce ne sont pas des modificateurs/surligneurs magiques indiquant à PHP de sécuriser quelque chose.Toute sortie de données non fiables (y compris les données de la base de données) doit être nettoyée. WordPress Codex décrit les fonctions disponibles: https://codex.wordpress.org/Data_Validation
Les renifleurs de code, suivant les normes de codage WordPress , nécessitent de nettoyer les sorties, même à partir des fonctions principales de WordPress. Vous pouvez activer un tel renifleur de code dans PhpStorm, par exemple.
Parfois, une telle exigence est excessive, mais il est préférable de suivre les normes de codage pour obtenir un code plus fiable.