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 确保已将' ...
最新文章
- JBI与SCA的区别
- 光端机的作用是什么? 简述光端机的作用
- JavaScript-基础入门.0014.JavaScript内置对象
- linux uuid/uuid.h
- 如何从OnDocumentComplete事件中获得当前frame的html代码
- 重温《数据库系统概论》【第一篇 基础篇】【第4章 数据库安全性】
- 倒数58天 -- 分治法 -- 使用循环求方程的一个解
- python 图片相似度算法比较_python 比较2张图片的相似度的方法示例
- SVN与TortoiseSVN实战:冲突详解(一)
- ajax post提交到SpringMVC的Controller并将处理结果传递到前台输出总结(1)
- Beta冲刺-第二天
- 数据仓库搭建——Inmon与Kimball
- 图神经网络(GCN)
- mysql hy000 死锁_mysql 数据库死锁-解决
- idea mac 常用快捷键
- hightopo实现电力拓扑着色功能
- 浩万计算机工具,子浩KX3552驱动一键安装工具(Win7/Win8/win10)
- hdu 2586 How far away ? (LCA转RMQ)
- SSM+流浪动物救助系统 毕业设计-附源码191631
- vscode之vue文件格式化代码无效怎么办
热门文章
- linetv_2020上半年泰国LINETV播放量最高的十部泰剧,你看了吗?
- 悬镜安全:用开源的方式做开源风险治理
- python等分区间_python实现列表的等分
- 对LCA、树上倍增、树链剖分(重链剖分长链剖分)和LCT(Link-Cut Tree)的学习
- Hustoj 配合阿里云服务器搭建OJ平台步骤
- Oracle修改check约束的sql语句
- python中、函数定义可以不包括以下一对圆括号_Python函数的基础学习
- 微信键盘 0.9 内测发布:丝滑流畅,快来体验~
- 使用OpenCV通过笔记本摄像头拍照
- 【读书笔记】学编程学化学学开车