HTML und JSON in Go-Vorlagen maskieren
In Go-Vorlagen ist es wichtig, HTML und JSON ordnungsgemäß zu handhaben, um unbeabsichtigtes Escapen zu verhindern. Betrachten Sie die folgende Vorlage:
{{ .SomeOtherHTML }}
Wenn Sie erwarten, dass die Ausgabe einfach
<the_other_html/<
Lösung für HTML-Escaping
Um dies zu verhindern, sollten Sie den HTML-Code als template.HTML-Typ statt als String übergeben. template.HTML ist ein spezieller Typ, der Go anweist, seinen Inhalt nicht zu maskieren. Zum Beispiel:
tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`))
tplVars := map[string]interface{} {
"Html": template.HTML("Paragraph
"),
"String": "Paragraph
",
}
tpl.ExecuteTemplate(os.Stdout, "T", tplVars)
Lösung für JSON-Escape
Wenn Sie auch JSON rendern müssen, sollten Sie JSON verwenden. Marshal-Funktion zum Konvertieren in ein Byte-Array. Dadurch wird verhindert, dass Go dem JSON-Inhalt entgeht. Zum Beispiel:
jsonBytes, _ := json.Marshal(data)
outputString := string(jsonBytes)
Durch Befolgen dieser Best Practices können Sie sicherstellen, dass HTML und JSON in Ihren Go-Vorlagen ordnungsgemäß maskiert werden, sodass die gewünschte Ausgabe ohne unbeabsichtigte Änderungen erzielt wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3