简介:
django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。而对于django中设置防跨站请求伪造功能有分为全局和局部。
全局:中间件 django.middleware.csrf.CsrfViewMiddleware;
局部:@csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件。@csrf_exempt,取消当前函数防跨站请求伪造功能,即便settings中设置了全局中间件。
目的:
csrf_token 是为了防止csrf(跨站请求伪造),什么是csrf,这篇文章讲的很好: 点这里哦^ v ^.文章最后也说到了,防止csrf的手段就有给form加个token。
更简单的说:就是防止黑客盗用你存在网站(cookie)上的账户密码和信息
具体做了什么:
在渲染模板时,django会把 {% csrf_token %} 替换成一个元素。在提交表单的时候,会把这个token给提交上去。
django默认启动 'django.middleware.csrf.CsrfViewMiddleware’中间件, 这个中间件就是来验证csrf_token的。如果没有加csrf_token,就会出错。