Django移动应用中的CSRF处理
我正在开发一个安卓应用,服务器端使用的是django1.6。我想把一些数据发送到服务器,但出现了403错误。
我该怎么做才能解决这个错误(提示说缺少或不正确的CSRF令牌)呢?
把CSRF中间件去掉(也就是从设置文件中删除django.middleware.csrf.CsrfViewMiddleware
)是个好主意吗?
如果不是,那还有什么其他的解决办法呢?
2 个回答
0
是的,这个主意不错,因为你在移动后台中其实不需要这个东西。
但是光是删除
'django.middleware.csrf.CsrfViewMiddleware'
是不够的,你还需要添加自己的中间件,这样才能禁用CSRF。
这里有个解决方案 http://www.soyoucode.com/2011/really-disable-csrf-django
1
这个问题并不是特定于Django的。如果你搜索一下 CSRF Restful
,你会发现很多相关的问题和答案,比如说 这个。
简单来说,CSRF是一种用来解决浏览器用户安全问题的机制。因此,使用移动应用的人通常不会受到这个问题的影响。
你应该为通过网页浏览器访问你应用的用户保留CSRF保护,同时为其他类型的客户端访问你的API制定不同的方案。