Django CSRF处理

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.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值