input禁止输入html转义字符串,在HTML中取消转义CSS输入

本文讲述了如何在GoHTML模板中正确处理CSS代码,特别是当遇到不安全内容时,如何使用CSS类型安全地包含受信任的CSS。通过实例演示了如何使用template.CSS()来避免`ZgotmplZ`错误,确保模板安全输出。
摘要由CSDN通过智能技术生成

小编典典

Go

HTML模板包正确地覆盖了CSS。从包装文件中template引用:

转义是上下文的,因此操作可以出现在JavaScript,CSS和URI上下文中。

"ZgotmplZ" 是一个特殊值,如果您要包含的值在上下文中无效或不安全,它将用作替换值。

所以问题是您要包括的CSS值,这是不安全的。首先尝试一些简单的方法,看看是否可行,例如:

body {background-color: #000}

"ZgotmplZ"在文档中(类型为ErrorCode)找到了对它的讨论,并引用了它:

"ZgotmplZ" 说明:

示例模板:

%7B%7B.X%7D%7D

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

#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值传递给模板参数。

2020-07-02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值