GoFrame 模板引擎-XSS處理

2022-04-01 14:02 更新

默認情況下,模板引擎對所有的變量輸出并沒有使用?HTML?轉(zhuǎn)碼處理,也就是說,如果開發(fā)者處理不好,可能會存在?XSS?漏洞。

不用擔心,?GoFrame?框架當然已經(jīng)充分考慮到這點,并且為開發(fā)者提供了比較靈活的配置參數(shù)來控制是否默認轉(zhuǎn)義變量輸出的?HTML?內(nèi)容。該特性可以通過?AutoEncode?配置項,或者?SetAutoEncode?方法來開啟/關(guān)閉。

需要注意的是,該特性并不會影響?include?模板的內(nèi)置函數(shù)。

使用示例:

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、執(zhí)行輸出

姓名: &lt;script&gt;alert(&#39;john&#39;);&lt;/script&gt;


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號