osurf是Go语言的一个CSRF跨站请求伪造(CrossSiteRequestForgery)中间件,可嵌入到et/http中使用,可方便与Gorilla和Martii框架结合使用。
示例代码:
packagemaiimport("fmt""github.com/justias/osurf""html/template""et/http")vartemplateStrigstrig=`<!doctypehtml><html><body>{{if.ame}}<p>Yourame:{{.ame}}</p>{{ed}}<formactio="/"method="POST"><iputtype="text"ame="ame"><!--Tryremovigthisorchagigitsvalueadseewhathappes--><iputtype="hidde"ame="csrf_toke"value="{{.toke}}"><iputtype="submit"value="Sed"></form></body></html>`vartempl=template.Must(template.New("t1").Parse(templateStrig))fucmyFuc(whttp.ResposeWriter,r*http.Request){cotext:=make(map[strig]strig)cotext["toke"]=osurf.Toke(r)ifr.Method=="POST"{cotext["ame"]=r.FormValue("ame")}templ.Execute(w,cotext)}fucmai(){myHadler:=http.HadlerFuc(myFuc)fmt.Pritl("Listeigohttps://127.0.0.1:8000/")http.ListeAdServe(":8000",osurf.New(myHadler))}









评论