django1.6 CSRF verification failed. Request aborted. 用出现表单提交
来源:互联网 发布:航天开票软件安装 编辑:程序博客网 时间:2024/06/05 10:24
Forbidden (403)
CSRF verification failed. Request aborted.
网上有很多解决方式, 大体是三种解决方法,但是我试了下 ,都不能解决我的问题:
这里列觉下其他3中解决方法:
1、在表单Form里加上{% csrf_token %}2、在Settings里的MIDDLEWARE_CLASSES增加配置:(一般默认就有)'django.middleware.csrf.CsrfViewMiddleware', #'django.middleware.csrf.CsrfResponseMiddleware',1.2.X示例: MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfResponseMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ) 3、在view中的方法上面加上@csrf_protect注解。同时使用RequestContext代替Context。示例:----------------------------------------------------------------------------------------------------------------------------------@csrf_protect def login(request):...returnrender_to_response('index.html',context_instance=RequestContext(request))
我测试了下不符合我出现的问题.
解决方法的思路:
1,先知道要添加在form里的这个东西是做什么的
{% csrf_token %} :
什么是CSRF
问题是解决了,但我不禁回想为什么在Django里提交POST表单要配置那么麻烦(其实也不麻烦,但对新手来说就不一样了),于是搜索关键字看看,得知它是一种跨站请求伪造,黑客可以利用这个攻击站点。而Django里的使用这个机制就是防止CSRF模式攻击,原理大致是当你打开页面的时候产生一个csrftokey种下cookie,然后当你提交表单时会把本地cookie里的csrftokey值给提交服务器,服务器判断只有有效的csrftokey值才处理请求.
在网上别人可以看到csrftokey的值,但是我用input的解决是空
2,找csrf_token为空的原因:
找到了一个关于django中ajax使用时csrf_token为空的例子:
http://blog.shazhouke.webfactional.com/?tag=django-csrf-jquery-ajax
3.思考,因自己也没用ajax请求.
就观察自己的代码:
发现问题:
对比:
@login_requireddef index(request): username = request.user.username return render_to_response('index.html',{ 'username':username },context_instance=RequestContext(request))
@login_requireddef index(request): return render_to_response('index.html')
下面这个是错误的.
还是因为RequestContext这一块的问题
注意引入的包: from django.shortcuts import render_to_response,RequestContext
- django1.6 CSRF verification failed. Request aborted. 用出现表单提交
- django1.10 提交表单出错,Forbidden (403) CSRF verification failed. Request aborted
- Django提交表单出现403错误,CSRF verification failed. Request aborted .
- [Django1.4]使用post表单:CSRF verification failed. Request aborted.错误
- Django1.11.1解决 Forbidden (403) CSRF verification failed. Request aborted.
- POST方法提交表单的时候 CSRF verification failed. Request aborted. CSRF token missing or incorrect.
- CSRF verification failed. Request aborted
- CSRF verification failed. Request aborted.
- CSRF verification failed. Request aborted
- CSRF verification failed. Request aborted.
- CSRF verification failed. Request aborted.
- CSRF verification failed. Request aborted.
- CSRF verification failed. Request aborted.
- CSRF verification failed. Request aborted.
- CSRF verification failed. Request aborted.
- CSRF verification failed. Request aborted.
- CSRF verification failed. Request aborted
- 解决Django 提交表单时403错误:CSRF verification failed. Request aborted .
- ubuntu 的 crontab 计划任务
- 对一个数组的处理。
- ubuntu 的SSH 服务
- ubuntu ufw 防火墙的设置
- ubuntu上一些好的操作方式 习惯 文件备份
- django1.6 CSRF verification failed. Request aborted. 用出现表单提交
- django1.6 GET url传参 乱码
- jquery js ajax 不错的想法
- django1.6 django-dajaxice的安装配置.
- django1.6 python manage.py collectstatic
- hammer.js教程1
- 屌丝程序员的爱情
- 美联储的路线图(一):衰退与复苏
- apache2 ubuntu log 的地址