Échappage HTML inattendu dans les modèles
Dans certains scénarios de modèles, les développeurs peuvent rencontrer un problème où < les caractères sont inutilement échappés vers <, tandis que > les personnages restent intacts. Ce comportement peut être déroutant, en particulier lorsque vous essayez d'insérer des valeurs telles que
Explication
La raison de cet échappement réside dans la bibliothèque sous-jacente utilisée pour le traitement du modèle. html/template est conçu pour générer une sortie HTML et fournit un échappement automatique pour les vulnérabilités potentielles d'injection de code. Il interprète < et > en tant qu'entités HTML pour empêcher l'exécution de code malveillant.
Malheureusement, cet échappement est spécifique au contexte et ne s'applique qu'aux contextes HTML. Étant donné que le modèle fourni n'est pas destiné à générer du HTML, le processus d'échappement ne devrait pas se produire.
Résolution
Pour résoudre ce problème, envisagez d'utiliser du texte/modèle au lieu de HTML. /template pour générer des fichiers tels que des fichiers readme et des licences. text/template n'effectue pas l'échappement spécifique au HTML, autorisant des caractères tels que < pour rester dans leur forme originale. En passant à cette bibliothèque, la sortie attendue de
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!