Maison >développement back-end >Golang >Pourquoi <échappé mais> reste-t-il non-échappé dans les modèles ?

Pourquoi <échappé mais> reste-t-il non-échappé dans les modèles ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 01:03:30945parcourir

Why is < Escaped but > Reste sans échappement dans les modèles ? 
Reste sans échappement dans les modèles ? " />

Échappement de < mais pas > dans les modèles

Dans le domaine de la génération de fichiers via des modèles, un problème déroutant est apparu : le > caractère, tandis que son homologue < subit une transformation inexplicable en <. Pour percer ce mystère, nous plongeons dans la documentation.

Le mécanisme d'échappement automatique de html/template, destiné à la sortie HTML, traite les valeurs des données comme texte brut qui nécessite un codage pour une intégration sécurisée. Cependant, les règles d'échappement sont sensibles au contexte, où le caractère < apparaît dans une directive #include, ce mécanisme d'échappement l'interprète à tort comme du contenu HTML et le transforme en & ;lt;.

La solution réside dans l'alignement de l'objectif du modèle avec le moteur de modèle approprié :

  • Si la sortie est HTML, utilisez html/template, qui fournit un échappement contextuel. .
  • Pour une sortie non HTML, optez pour le texte/modèle, ce qui évite les échappements inutiles, garantissant que < et > sont conservés dans leur forme originale.

    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