在 HTML 中取消转义 css 输入
Unescape css input in HTML
如何取消转义 html?
我正在像这样将 css 文件传递到 html
<style>{{.file}}</style>
我明白了
<style>ZgotmplZ</style>
我试过用 template.HTML(data) 包裹字段,但没用。
Go HTML 模板包正确地转义 CSS。引用自 documentation of the template
package:
The escaping is contextual, so actions can appear within JavaScript, CSS, and URI contexts.
"ZgotmplZ"
是一个特殊值,如果您尝试包含的值在上下文中无效或不安全,它会用作替代值。
所以问题是您尝试包含的 CSS 值,它不安全。先尝试一些简单的东西,看看它是否有效,例如:
body {background-color: #000}
在文档中找到"ZgotmplZ"
的讨论(类型ErrorCode
),引用它:
"ZgotmplZ"
说明:
示例模板:
<img src="{{.X}}">
where {{.X}} evaluates to `javascript:...`
讨论:
"ZgotmplZ" is a special value that indicates that unsafe content reached a
CSS 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 的上下文中,您不能't/shouldn 使用 template.HTML(data)
。
有一个预定义类型 CSS
用于安全包含来自可信来源的 CSS 代码,例如CSS 您指定的代码,并非来自用户填写的 HTML 表单。示例:
var safeCss = template.CSS(`body {background-image: url("paper.gif");}`)
并将 safeCss
值传递给您的模板参数。
如何取消转义 html?
我正在像这样将 css 文件传递到 html
<style>{{.file}}</style>
我明白了
<style>ZgotmplZ</style>
我试过用 template.HTML(data) 包裹字段,但没用。
Go HTML 模板包正确地转义 CSS。引用自 documentation of the template
package:
The escaping is contextual, so actions can appear within JavaScript, CSS, and URI contexts.
"ZgotmplZ"
是一个特殊值,如果您尝试包含的值在上下文中无效或不安全,它会用作替代值。
所以问题是您尝试包含的 CSS 值,它不安全。先尝试一些简单的东西,看看它是否有效,例如:
body {background-color: #000}
在文档中找到"ZgotmplZ"
的讨论(类型ErrorCode
),引用它:
"ZgotmplZ"
说明:
示例模板:
<img src="{{.X}}">
where {{.X}} evaluates to `javascript:...`
讨论:
"ZgotmplZ" is a special value that indicates that unsafe content reached a
CSS 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 的上下文中,您不能't/shouldn 使用 template.HTML(data)
。
有一个预定义类型 CSS
用于安全包含来自可信来源的 CSS 代码,例如CSS 您指定的代码,并非来自用户填写的 HTML 表单。示例:
var safeCss = template.CSS(`body {background-image: url("paper.gif");}`)
并将 safeCss
值传递给您的模板参数。