Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 范围内的转义模板_Go_Go Templates_Html Escape Characters - Fatal编程技术网

Go 范围内的转义模板

Go 范围内的转义模板,go,go-templates,html-escape-characters,Go,Go Templates,Html Escape Characters,我想打印用户列表,如:,这是我公司内部的一种内部格式,但golang模板总是转义,如果要这样做,请使用文本/模板。以下是文档的一部分,以便更好地理解每一部分: 戈多克: 此软件包包装了软件包文本/模板,因此您可以共享其模板API以安全地解析和执行HTML模板 tmpl, err := template.New("name").Parse(...) // Error checking elided err = tmpl.Execute(out, data) 如果成功,tmpl

我想打印用户列表,如:
,这是我公司内部的一种内部格式,但golang模板总是转义
,如果要这样做,请使用文本/模板。以下是文档的一部分,以便更好地理解每一部分:

戈多克:

此软件包包装了软件包文本/模板,因此您可以共享其模板API以安全地解析和执行HTML模板

tmpl, err := template.New("name").Parse(...)
// Error checking elided
err = tmpl.Execute(out, data)
如果成功,tmpl现在将是注射安全的。否则,err是文档中为ErrorCode定义的错误

HTML模板将数据值视为纯文本,应该对其进行编码,以便可以安全地嵌入HTML文档中。转义是上下文的,因此操作可以出现在JavaScript、CSS和URI上下文中

此包使用的安全模型假定模板作者受信任,而Execute的数据参数不受信任。下文提供了更多细节

示例

import "text/template"
...
t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
err = t.ExecuteTemplate(out, "T", "<script>alert('you have been pwned')</script>")

使用该包而不是html/模板包。哦,谢谢,goland自动导入
html/模板
包,更改为
text/template
已解决。
 &lt;@user1>  &lt;@user2> 
tmpl, err := template.New("name").Parse(...)
// Error checking elided
err = tmpl.Execute(out, data)
import "text/template"
...
t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
err = t.ExecuteTemplate(out, "T", "<script>alert('you have been pwned')</script>")
Hello, <script>alert('you have been pwned')</script>!
import "html/template"
...
t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
err = t.ExecuteTemplate(out, "T", "<script>alert('you have been pwned')</script>")
Hello, &lt;script&gt;alert(&#39;you have been pwned&#39;)&lt;/script&gt;!