关于Django中Csrf问题的解决方法
2012-10-25 15:16
447 查看
最近在用Django做表单POST提交处理的时候,遇到了CSRF verification failed request aborted这样的错误信息提示,然后看了网的一些解决方法,都没有解决掉。后来才发现,网上的方法,都是解决之道的一部分。所以我便整理出完整的解决步骤供大家参考。
什么是Csrf呢,中文名称叫做跨站请求伪造。它在django中的工作原理,我在这里就不说了。可以直接看Django Book这本书的第十六章集成的子框架 django.contrib.好了下面就说解决方法:
首先:找到settings.py文件并打开,找到MIDDLEWARE_CLASSES,确保下面的代码没有被注释掉,如果注释了,请去掉注释。
然后:就是要找到你有Form表单的模板,在Form表单中加入{% csrf-token %},这是传统的加法。如果为了和表单的格式保持一致可以采用下面方法加入csrf-token,这也是我个人比较喜欢的方法:
最后一步,就是在你的View视图中涉及表单处理的视图函数处理Http请求时应该这样写:
做好上面三部,相信就能很好的解决掉Csrf问题。
什么是Csrf呢,中文名称叫做跨站请求伪造。它在django中的工作原理,我在这里就不说了。可以直接看Django Book这本书的第十六章集成的子框架 django.contrib.好了下面就说解决方法:
首先:找到settings.py文件并打开,找到MIDDLEWARE_CLASSES,确保下面的代码没有被注释掉,如果注释了,请去掉注释。
MIDDLEWARE_CLASSES = ( 'django.middleware.csrf.CsrfMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfResponseMiddleware', )在这里只要确保Csrf的中间键是被加载的就好。有些情况下只需要一个元素即可,可以自己进行调试。
然后:就是要找到你有Form表单的模板,在Form表单中加入{% csrf-token %},这是传统的加法。如果为了和表单的格式保持一致可以采用下面方法加入csrf-token,这也是我个人比较喜欢的方法:
<div style="display:none"> <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}"/> </div>以表单隐藏字段的方式提交csrf-token.
最后一步,就是在你的View视图中涉及表单处理的视图函数处理Http请求时应该这样写:
from django.shortcuts import RequestContext return render_to_response('xxx.html',locals(),context_instance=RequestContext(request))
做好上面三部,相信就能很好的解决掉Csrf问题。
相关文章推荐
- 关于django1.7.7使用ajax后出现“CSRF token missing or incorrect”问题的解决办法
- Django关于站点管理Admin Site的常见问题解决方法
- django 中 csrf问题 的解决方法
- 关于Django出现CSRF token missing or incorrect.问题解决办法(参考官方文档)
- 关于django1.7.7使用ajax后出现“CSRF token missing or incorrect”问题的解决办法
- Django csrf报错问题的解决方法
- 关于二级域名Cookie的问题及解决方法
- android关于AlertDialog.Builder中setMessage不能换行问题的解决方法
- PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
- 关于startActivityForResult()方法后Activity直接退出的问题原因和解决办法
- 关于spring boot 中App类位置不同导致出错的问题的解决方法
- 关于windows系统安装jdk时出现的一些问题的解决方法
- 关于struts2 中action 属性没有 set 方法 依然会注入值的问题(解决)
- 解决Django模板无法使用perms变量问题的方法
- 关于在arm裸板编程时使用printf问题的解决方法
- c++中关于设置左对齐和右对齐的问题解决方法
- 有关于WCSF创建项目的问题解决方法
- 关于JQuery的serialize方法.让我崩溃一天的问题解决了
- 关于UIButton嵌入到UIView点击无反应问题的解决方法和delegate的简单用法示例(转载)
- 关于载入地形出错的问题解决方法