默认情况下,模板引擎对所有的变量输出并没有使用HTML
转码处理,也就是说,如果开发者处理不好,可能会存在XSS
漏洞。
不用担心,GoFrame
框架当然已经充分考虑到这点,并且为开发者提供了比较灵活的配置参数来控制是否默认转义变量输出的HTML
内容。该特性可以通过AutoEncode
配置项,或者SetAutoEncode
方法来开启/关闭。
需要注意的是,该特性并不会影响include
模板的内置函数。
使用示例:
1、配置文件
[viewer]
delimiters = ["${", "}"]
autoencode = true
2、示例代码
package main
import (
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
)
func main() {
result, _ := g.View().ParseContent(context.TODO(), "姓名: ${.name}", g.Map{
"name": "<script>alert('john');</script>",
})
fmt.Println(result)
}
3、执行输出
姓名: <script>alert('john');</script>
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。