Maison > développement back-end > Golang > Pourquoi « ZgotmplZ » apparaît-il dans les modèles HTML My Go et comment puis-je y remédier ?

Pourquoi « ZgotmplZ » apparaît-il dans les modèles HTML My Go et comment puis-je y remédier ?

Linda Hamilton
Libérer: 2024-12-16 05:44:09
original
697 Les gens l'ont consulté

Why Does

Résolution de la sortie "ZgotmplZ" dans les modèles HTML Go

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.

Cause et solution

"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=&quot;selected&quot;`,
        "html": `<option selected=&quot;selected&quot;>test</option>`,
    })
}
Copier après la connexion

Sortie

Ce code corrigé générera la sortie souhaitée :

<option selected=&quot;selected&quot;>test</option>
<option selected=&quot;selected&quot;>test</option>
Copier après la connexion

Personnalisation

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal