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验证失败,请求被中断问题相关推荐

  1. Django CSRF验证失败. 请求被中断.

    项目场景: Python版本:3.7 Django版本:3.1.7 问题描述: 出现了CSRF验证失败. 请求被中断. 原因分析:   在Django中有个设定,防止跨域来请求.比如有爬虫,爬虫不是从 ...

  2. python_django(禁止访问 (403) CSRF验证失败. 请求被中断)

    禁止访问 403 错误 原因 解决方法: 错误 Forbidden (403) CSRF verification failed. Request aborted.禁止访问 (403) CSRF验证失 ...

  3. CSRF验证失败. 请求被中断.

    CSRF验证失败. 请求被中断. 当出现这个bug的时候 一般情况下是使用<form>并用post传递的原因 只需要在<form>标签下一行加上{% csrf_token %} ...

  4. python_django_禁止访问 _CSRF验证失败. 请求被中断_更多信息请设置选项DEBUG=True。

    问题描述: 访问一个url时,回有一个注册页面的响应,输入对应的信息后,单击注册按钮进行提交进行页面跳转,显示禁止访问 _CSRF验证失败. 请求被中断_更多信息请设置选项DEBUG=True. 解决 ...

  5. 访问django后台,提示CSRF验证失败. 请求被中断.Referer checking failed - **** does not match any trust

    1.非debug模式看到的报错 2.settings打开debug模式,才能把报错信息看的详细 3.去settings.py中,找到CsrfViewMiddleware 中间件,点击进入 4.搜索匹配 ...

  6. 禁止访问 (403)CSRF验证失败. 请求被中断.

    出现这个问题是因为django在收到表单提交过来的信息时,会检查提交过来的信息中是否有token,并会对token进行校验,如果校验通过,那就继续执行,反之就会认定这次的数据有伪造的风险. 解决方案: ...

  7. 禁止访问 (403) CSRF验证失败. 请求被中断.————错误处理(测试接口时遇到的问题)

    问题描述 解决措施 在Header参数中添加Content-Type和X-CSRFToken信息,这样就不会报错了. 运行结果

  8. CSRF验证失败请求中止在Django上

    如何解决CSRF验证失败请求中止在Django上? 你需要将{% csrf_token %}模板标记添加为formDjango模板中元素的子代. 这样,模板将呈现一个隐藏元素,其值设置为CSRF令牌. ...

  9. Django项目出现: 禁止访问(403),CSRF验证失败,相应中断

    CSRF验证失败,相应中断  错误信息为: 查看错误信息,不难发现,我们在上面问题中有一个{% csrf_token %},这是一个网络漏洞,在所有表单提交中,都需要添加并且必须放在format的后面 ...

  10. 禁止(403)CSRF验证失败请求中止即使使用{%csrf_token%}

    如何解决禁止(403)CSRF验证失败请求中止即使使用{%csrf_token%}? 要使csrf保护起作用,需要做一些事情(请查看docs): 你的浏览器必须接受服务器中的Cookie 确保已将' ...

最新文章

  1. JBI与SCA的区别
  2. 光端机的作用是什么? 简述光端机的作用
  3. JavaScript-基础入门.0014.JavaScript内置对象
  4. linux uuid/uuid.h
  5. 如何从OnDocumentComplete事件中获得当前frame的html代码
  6. 重温《数据库系统概论》【第一篇 基础篇】【第4章 数据库安全性】
  7. 倒数58天 -- 分治法 -- 使用循环求方程的一个解
  8. python 图片相似度算法比较_python 比较2张图片的相似度的方法示例
  9. SVN与TortoiseSVN实战:冲突详解(一)
  10. ajax post提交到SpringMVC的Controller并将处理结果传递到前台输出总结(1)
  11. Beta冲刺-第二天
  12. 数据仓库搭建——Inmon与Kimball
  13. 图神经网络(GCN)
  14. mysql hy000 死锁_mysql 数据库死锁-解决
  15. idea mac 常用快捷键
  16. hightopo实现电力拓扑着色功能
  17. 浩万计算机工具,子浩KX3552驱动一键安装工具(Win7/Win8/win10)
  18. hdu 2586 How far away ? (LCA转RMQ)
  19. SSM+流浪动物救助系统 毕业设计-附源码191631
  20. vscode之vue文件格式化代码无效怎么办

热门文章

  1. linetv_2020上半年泰国LINETV播放量最高的十部泰剧,你看了吗?
  2. 悬镜安全:用开源的方式做开源风险治理
  3. python等分区间_python实现列表的等分
  4. 对LCA、树上倍增、树链剖分(重链剖分长链剖分)和LCT(Link-Cut Tree)的学习
  5. Hustoj 配合阿里云服务器搭建OJ平台步骤
  6. Oracle修改check约束的sql语句
  7. python中、函数定义可以不包括以下一对圆括号_Python函数的基础学习
  8. 微信键盘 0.9 内测发布:丝滑流畅,快来体验~
  9. 使用OpenCV通过笔记本摄像头拍照
  10. 【读书笔记】学编程学化学学开车