Maison  >  Article  >  développement back-end  >  Pourquoi \'<\' est-il échappé vers \'<\' dans mon modèle HTML, même si \'>\' s'affiche correctement ?

Pourquoi \'<\' est-il échappé vers \'<\' dans mon modèle HTML, même si \'>\' s'affiche correctement ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 02:33:01484parcourir

Why is

Modèle s'échappant de manière inattendue <

Un utilisateur a rencontré un problème avec les modèles dans son outil de développement. Malgré l'utilisation de modèles HTML, qui échappent automatiquement aux données pour une intégration HTML sécurisée, ils ont observé que même si le caractère > s'affichait correctement, le caractère < était en cours de conversion en <.

Explication

Les modèles HTML du package html/template de Go sont conçus spécifiquement pour générer une sortie HTML. Ils fournissent un codage automatique dépendant du contexte pour garantir que les valeurs des données sont intégrées en toute sécurité dans les documents HTML. Ce codage empêche les utilisateurs malveillants d'injecter du code dangereux dans la sortie. Cependant, le package texte/modèle ne dispose pas de cette fonctionnalité d'encodage et interprète uniquement les valeurs des données comme du texte brut.

Dans ce cas, puisque l'utilisateur avait l'intention de générer une sortie non HTML (probablement un script Pawn), en utilisant le texte Le package /template aurait été plus approprié. Le package html/template échappait inutilement au < caractère car il s'attendait à ce que la sortie soit intégrée au format HTML, ce qui n'était pas le cas.

Solution

Pour résoudre ce problème, l'utilisateur doit passer au texte/ package de modèles lors de la génération d’une sortie non HTML. Cela désactivera l'encodage automatique et permettra l'affichage correct de tous les caractères, y compris < et >.

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