在HTML中取消转义CSS输入
我要如何转义html?
我正在将css文件传递给html这样
<style>{{.file}}</style>
我明白了
<style>ZgotmplZ</style>
我试图用template.HTML(data)包装字段,但是没有用。
回答:
Go
HTML模板包正确地覆盖了CSS。从包装文件中template
引用:
转义是上下文的,因此操作可以出现在JavaScript,CSS和URI上下文中。
"ZgotmplZ"
是一个特殊值,如果您要包含的值在上下文中无效或不安全,它将用作替换值。
所以问题是您要包括的CSS值,这是不安全的。首先尝试一些简单的方法,看看是否可行,例如:
body {background-color: #000}
"ZgotmplZ"
在文档中(类型为ErrorCode
)找到了对它的讨论,并引用了它:
回答:
<img src="{{.X}}">where {{.X}} evaluates to `javascript:...`
"ZgotmplZ" is a special value that indicates that unsafe content reached aCSS or URL context at runtime. The output of the example will be
<img src="#ZgotmplZ">
If the data comes from a trusted source, use content types to exempt it
from filtering: URL(`javascript:...`).
回答:
由于您尝试插入的代码是在CSS代码而不是HTML的上下文中,因此您不能/不应该使用template.HTML(data)
。
有一个预定义的类型CSS
可以安全地包含来自受信任来源的CSS代码,例如您指定的CSS代码,而不是来自用户填写的HTML表单。例:
var safeCss = template.CSS(`body {background-image: url("paper.gif");}`)
并将safeCss
值传递给模板参数。
以上是 在HTML中取消转义CSS输入 的全部内容, 来源链接: utcz.com/qa/418682.html