处理文件上传的token有什么用

// 处理/upload 逻辑
func upload(w http.ResponseWriter, r *http.Request) {
    fmt.Println("method:", r.Method) //获取请求的方法
    if r.Method == "GET" {
        crutime := time.Now().Unix()
        h := md5.New()
        io.WriteString(h, strconv.FormatInt(crutime, 10))
        token := fmt.Sprintf("%x", h.Sum(nil))//这里的token???

        t, _ := template.ParseFiles("upload.gtpl")
       t.Execute(w, token)
    } else {
        r.ParseMultipartForm(32 << 20)
        file, handler, err := r.FormFile("uploadfile")
        if err != nil {
            fmt.Println(err)
            return
        }
        defer file.Close()
        fmt.Fprintf(w, "%v", handler.Header)
        f, err := os.OpenFile("./test/"+handler.Filename, os.O_WRONLY|os.O_CREATE, 0666)  // 此处假设当前目录下已存在test目录
        if err != nil {
            fmt.Println(err)
            return
        }
        defer f.Close()
        io.Copy(f, file)
    }
}

代码第8行中的token在Get页面时候生成, 在post也不见处理这个token, 请问这个token是怎样用的?

已邀请:

solar - 91小泥人

赞同来自: buscoop ShawnXiong

这个token本意是不是做c s r f 验证的,只是POST那里没验证,只能猜测。

ShawnXiong - 长相出众的猴子

赞同来自:

这个GET是下载文件, token是用来校验文件完整性的

claire217

赞同来自:

4w3rwq

panxue - 90后IT男

赞同来自:

token 生成是用来渲染 upload.gtpl.

至于为啥 post 没用,这个和实现有关, 就楼主粘贴的代码无法判断

要回复问题请先登录注册