输入校验

1.【必须】按类型进行数据校验

  • 所有外部输入的参数,应使用validator进行白名单校验,校验内容包括但不限于数据长度、数据范围、数据类型与格式,校验不通过的应当拒绝
// good
import (
    "fmt"
    "github.com/go-playground/validator/v10"
)

var validate *validator.Validate
validate = validator.New()
func validateVariable() {
    myEmail := "abc@tencent.com"
    errs := validate.Var(myEmail, "required,email")
    if errs != nil {
        fmt.Println(errs)
        return
        //停止执行
    }
    // 验证通过,继续执行
    ...
}
  • 无法通过白名单校验的应使用html.EscapeStringtext/templatebluemonday<, >, &, ',"等字符进行过滤或编码
  import(
      "text/template"
  )

  // TestHTMLEscapeString HTML特殊字符转义
  func main(inputValue string) string{
      escapedResult := template.HTMLEscapeString(inputValue)
      return escapedResult
  }
最后编辑: kuteng  文档更新时间: 2021-06-04 17:24   作者:kuteng