Django CSRF处理
2017-11-28 16:46
344 查看
1、setting中默认在MIDDLEWARE中设置了django.middleware.csrf.CsrfViewMiddleware,官方文档建议不要把它删了。
2、GET请求(安全的操作)不要做GET之外的操作(side effect free)。POST,PUT,DELETE方法(不安全的操作),按照以下方法来做。
3、<form>
表单后一律加上{% csrf_token %},这样在网页加载时,会在此处生成一窜随机的序列,该序列同样存在于cookie中,提交表单的同时也会提交该序列,只有两者的序列相同时,才会执行后续操作,否则引起403 forbidden。
4、若是用Ajax在不刷新的情况下提交表单,则需要给XHttpRequest设置请求头,把csrf_token放到请求头里。获取token最简单的方法是使用jquery.cookie.js: $.cookie('csrftoken')
。CSRF token的cookie默认就叫做csrftoken, 该名字可在setting中通过CSRF_COOKIE_NAME改变。设置请求头的方法是:
$.ajax({header: {"X-CSRFtoken": $.cookie("csrftoken")})。
5、Ajax不设置请求头会导致403 forbidden。注意jquery.cookie.js的引入要在jquery.js之后。
6、尽量用render而不是render_to_response,官方文档解释:render() is the same as a call to render_to_response() with a context_instance argument that forces the use of a RequestContext.
相关文章推荐
- Django 中的 csrf_token 与单元测试报错处理
- django中的csrf与后台模块处理
- Django CSRF_TOKEN跨域攻击处理
- django关于csrf防止跨站的ajax请求403处理
- django 对于csrf错误的处理
- django关于csrf防止跨站的ajax请求403处理
- django 处理POST请求时报403 -- csrf
- 关于Django中CSRF token missing or incorrect报错的处理办法
- 每日一记======>(转)CSRF介绍(Cross-site request forgery)以及django中的处理方法
- django对事务的处理
- 循序渐进Python3(十三) --5-- django请求处理流程
- Django中处理出错页面的方法
- django csrf
- Django学习系列之CSRF
- Django:CSRF verification failed.
- Django处理http请求流程剖析
- Django静态文件处理总结
- Django HTTP请求的处理流程
- axios通过django的csrf验证
- django static 静态文件(css,js,image)处理机制