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!