Wenn eine Go-Vorlagenfunktion HTML ausgibt, kann das unerwartete Erscheinen von „ZgotmplZ“ auftreten. Dieser besondere Wert weist auf das Vorhandensein unsicherer Inhalte in einem CSS- oder URL-Kontext während der Laufzeit hin.
„ZgotmplZ“ bedeutet, dass rohe, potenziell gefährliche Daten fälschlicherweise in ein CSS oder eine URL eingegeben wurden Kontext. Um dies zu beheben, müssen die Funktionen „safe“ und „attr“ zur funcMap der Vorlage hinzugefügt werden. Diese Funktionen konvertieren die Daten in sicheres HTML bzw. HTML-Attribute.
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>`, }) }
Dieser korrigierte Code generiert die gewünschte Ausgabe:
<option selected="selected">test</option> <option selected="selected">test</option>
Entwickler können sich dafür entscheiden, zusätzliche Funktionen zu definieren, die Strings in andere HTML-sichere Typen wie template.CSS, template.JS, konvertieren können. template.JSStr und template.URL.
Das obige ist der detaillierte Inhalt vonWarum erscheint „ZgotmplZ' in meinen Go-HTML-Vorlagen und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!