Django的csrf豁免:解决CSRF验证失败,请求被中断问题
1.CSRF介绍
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
这里推荐一篇文章,个人感觉写的不错:Python中csrf攻击与防御
2.解决csrf的问题/csrf豁免
csrf豁免有三种方式,如下:
创建子路由:
url(r'^testCsrf/',views.testCsrf),
生成视图函数:
def testCsrf(request):return HttpResponse('testCsrf')
使用postman,进行操作
(1)注释中间件
在settings中找到MIDDLEWARE,注释掉:‘django.middleware.csrf.CsrfViewMiddleware’,即可成功
注意:如果注释,所有的csrf都避过了post请求
(2)在方法上添加 @csrf_exempt
@csrf_exempt
def testCsrf(request):return HttpResponse('testCsrf')
运行结果:
(3)在表单中添加{%csrf_token%}
def testCsrf(request):if request.method == 'GET':return render(request,'testCsrf.html')elif request.method == 'POST':return HttpResponse('testCsrf')
创建testCsrf.html模板:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><form action="/sess/testCsrf/" method="post">{% csrf_token %}<button>提交</button></form>
</body>
</html>
运行结果:
点击前:
点击后:
实现机制:
页面中存在{% csrf_token %}时
在渲染的时候,会向Response中添加 csrftoken的Cookie
在提交的时候,会被添加到请求体中, 会被验证有效性
Django的csrf豁免:解决CSRF验证失败,请求被中断问题相关推荐
- Django CSRF验证失败. 请求被中断.
项目场景: Python版本:3.7 Django版本:3.1.7 问题描述: 出现了CSRF验证失败. 请求被中断. 原因分析: 在Django中有个设定,防止跨域来请求.比如有爬虫,爬虫不是从 ...
- python_django(禁止访问 (403) CSRF验证失败. 请求被中断)
禁止访问 403 错误 原因 解决方法: 错误 Forbidden (403) CSRF verification failed. Request aborted.禁止访问 (403) CSRF验证失 ...
- CSRF验证失败. 请求被中断.
CSRF验证失败. 请求被中断. 当出现这个bug的时候 一般情况下是使用<form>并用post传递的原因 只需要在<form>标签下一行加上{% csrf_token %} ...
- python_django_禁止访问 _CSRF验证失败. 请求被中断_更多信息请设置选项DEBUG=True。
问题描述: 访问一个url时,回有一个注册页面的响应,输入对应的信息后,单击注册按钮进行提交进行页面跳转,显示禁止访问 _CSRF验证失败. 请求被中断_更多信息请设置选项DEBUG=True. 解决 ...
- 访问django后台,提示CSRF验证失败. 请求被中断.Referer checking failed - **** does not match any trust
1.非debug模式看到的报错 2.settings打开debug模式,才能把报错信息看的详细 3.去settings.py中,找到CsrfViewMiddleware 中间件,点击进入 4.搜索匹配 ...
- 禁止访问 (403)CSRF验证失败. 请求被中断.
出现这个问题是因为django在收到表单提交过来的信息时,会检查提交过来的信息中是否有token,并会对token进行校验,如果校验通过,那就继续执行,反之就会认定这次的数据有伪造的风险. 解决方案: ...
- 禁止访问 (403) CSRF验证失败. 请求被中断.————错误处理(测试接口时遇到的问题)
问题描述 解决措施 在Header参数中添加Content-Type和X-CSRFToken信息,这样就不会报错了. 运行结果
- CSRF验证失败请求中止在Django上
如何解决CSRF验证失败请求中止在Django上? 你需要将{% csrf_token %}模板标记添加为formDjango模板中元素的子代. 这样,模板将呈现一个隐藏元素,其值设置为CSRF令牌. ...
- Django项目出现: 禁止访问(403),CSRF验证失败,相应中断
CSRF验证失败,相应中断 错误信息为: 查看错误信息,不难发现,我们在上面问题中有一个{% csrf_token %},这是一个网络漏洞,在所有表单提交中,都需要添加并且必须放在format的后面 ...
- 禁止(403)CSRF验证失败请求中止即使使用{%csrf_token%}
如何解决禁止(403)CSRF验证失败请求中止即使使用{%csrf_token%}? 要使csrf保护起作用,需要做一些事情(请查看docs): 你的浏览器必须接受服务器中的Cookie 确保已将' ...
最新文章
- 3D目标检测深度学习方法之voxel-represetnation内容综述(二)
- 查看python安装的包
- 关于输入输出流的心得
- 上传代码到gitee操作
- 远程桌面连接数超过最大限制解决方法
- 开源项目Hopsan代码梳理、流程分析
- 飞鸽传书CSDN的搜索结果
- 2019 编程语言终极排行榜:Java 稳坐榜首!
- 多级队列调度算法可视化界面_进程调度功能由操作系统内核的进程调度程序完成...
- worldwind java 教程_科学网—用worldwind java SDK开发应用程序 - 谢安涛的博文
- 关闭计算机主机还亮着,Win10系统电脑关机后主机电源灯依然亮着的解决方法
- WIN10彻底禁用UAC(用户账户控制)
- OA流程 工作流设计
- 经典贪吃蛇大战逆向_游戏内购
- 奇点云数据中台技术汇(九)| 如何建设数据安全体系?
- 无需更改注册表 实现CHM文件从共享文件中直接打开
- h5案例分享:王中军个人画展:藝術東西,玄如藝術
- 【web前端基础 | H5】HTML简介
- python通过指定网卡发包_Python选择网卡发包及接收数据包
- HTTP协议Response