“学习或者了解人工智能小伙伴福利来了,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。” 
想了解或者学习人工智能可以看一下,我觉得学习起来挺有趣的!!!!
点击跳转到网站 ![]()

8、防护XSRF的方式:post请求之类伪造请求
- beego自带的防范机制:
 - ajax中使用:添加 _xsrf 参数,需要两个插件
 - 支持controller级别的屏蔽
 
-  
每一个用户一个cookie,所用的请求都需要验证这个cookie,如果没有这个cookie,则被认为跨站请求伪造
 -  
挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法
 -  
CSRF 利用的是网站对用户网页浏览器的信任
 
beego自带的防范机制:
-  
配置文件配置:
enablexsrf = truexsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1oxsrfexpire = 3600 //过期时间,默认1小时,单位秒 -  
main.go文件的run前面:
beego.BConfig.WebConfig.EnableXSRF = truebeego.BConfig.WebConfig.XSRFKey = "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o"beego.BConfig.WebConfig.XSRFExpire = 360 -  
函数中设置xsrf数据:得在渲染模板的Get方法里面设置数据:
 
import "html/template"func (c *UserController) Get()  {c.Data["xsrfdata"]=template.HTML(c.XSRFFormHTML())c.TplName = "user.html"
}
 
func (c *UserController) Post()  {c.TplName = "index.tpl"
}
 
- 函数中重新设置过期时间:
 
this.XSRFExpire = 7200
this.Data["xsrfdata"]=template.HTML(this.XSRFFormHTML())
 
- 模板中使用:
 
<form action="/user" method="post">{{ .xsrfdata }}<input type="submit" value="提交"/>
</form>
 
ajax中使用:添加 _xsrf 参数,需要两个插件
jQuery cookie插件:https://github.com/carhartl/jquery-cookie
base64 插件:http://phpjs.org/functions/base64_decode/
var xsrf, xsrflist;
xsrf = $.cookie("_xsrf");
xsrflist = xsrf.split("|");
args._xsrf = base64_decode(xsrflist[0]);args就是要提交的数据
 
支持controller级别的屏蔽
只需要在需要屏蔽的controller中的Prepare方法中设置为false即可:
// Prepare方法实在init后,请求方法前执行的
func (c *UploadController) Prepare() {c.EnableXSRF = false}
 

  


















