Maison  >  Article  >  développement back-end  >  Pourquoi < S'échapper vers < dans mon modèle ?

Pourquoi < S'échapper vers < dans mon modèle ?

DDD
DDDoriginal
2024-11-03 11:16:29888parcourir

Why is < Escaping to < in My Template?

É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 dans un modèle.

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 devrait être atteint.

">

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn