Lorsqu'une fonction de modèle Go génère du HTML, l'apparition inattendue de "ZgotmplZ" peut survenir. Cette valeur particulière indique la présence de contenu dangereux dans un contexte CSS ou URL pendant l'exécution.
"ZgotmplZ" signifie que des données brutes potentiellement dangereuses ont été saisies par erreur dans un CSS ou une URL. contexte. Pour remédier à cela, les fonctions safe et attr doivent être ajoutées au funcMap du modèle. Ces fonctions convertissent les données en attributs HTML et HTML sécurisés, respectivement.
package main import ( "html/template" "os" ) func main() { funcMap := template.FuncMap{ "attr": func(s string) template.HTMLAttr { return template.HTMLAttr(s) }, "safe": func(s string) template.HTML { return template.HTML(s) }, } template.Must(template.New("Template").Funcs(funcMap).Parse(` <option {{.attr | attr}}>>test</option> {{.html | safe}} `)).Execute(os.Stdout, map[string]string{ "attr": `selected="selected"`, "html": `<option selected="selected">test</option>`, }) }
Ce code corrigé générera la sortie souhaitée :
<option selected="selected">test</option> <option selected="selected">test</option>
Les développeurs peuvent choisir de définir des fonctions supplémentaires capables de convertir des chaînes en d'autres types HTML sécurisés tels que template.CSS, template.JS, template.JSStr et template.URL.
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!