csrf中间件

​ csrf 跨站请求伪造

​ 补充两个装饰器:

​ from django.views.decorators.csrf import csrf_exempt,csrf_protect

​ csrf_exempt 给视图加上装饰器后,当前的视图不需要CSRF校验

​ csrf_protect 给视图加上装饰器后,当前的视图需要CSRF校验

  1. process_request:

    从cookie中获取csrftoken的值  —— 》 request.META['CSRF_COOKIE']
  2. process_view

    1. 视图函数加上csrf_exempt装饰器,不进行CSRF校验

    2. 请求方式 是'GET', 'HEAD', 'OPTIONS', 'TRACE' 也不进行校验

    3. csrf_token = request.META.get('CSRF_COOKIE') # cookie中获取csrftoken的值

    # 获取提交的csrfmiddlewaretoken的值
    request_csrf_token = request.POST.get('csrfmiddlewaretoken', '')
    如果或许不到csrfmiddlewaretoken的值
    再尝试从请求头中获取X_CSRFTOKEN的值 —— 》request_csrf_token
    1. request_csrf_token 和 csrf_token 进行比较

      1. 能比较成功 通过校验
      2. 不能比较成功 拒绝

Django的csrf中间件的更多相关文章

  1. Django 中CSRF中间件 'django.middleware.csrf.CsrfViewMiddleware',

    1.Django中CSRF中间件的工作原理及form表单提交需要添加{% csrf_token %}防止出现403错误 CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站 ...

  2. Django之csrf中间件及auth模块使用

    目录 一.基于配置文件的编程思想 1. importlib 模块 2. 配置文件 二.跨站请求伪造(csrf) 1.csrf简介以及由来 2.Django中的csrf中间件如何使用 2.1 普通for ...

  3. django 缓存、中间件、信号、CSRF 详解

    中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项 ...

  4. 30.Django CSRF 中间件

    CSRF 1.概述 CSRF(Cross Site Request Forgery)跨站点伪造请求,举例来讲,某个恶意的网站上有一个指向你的网站的链接,如果某个用户已经登录到你的网站上了,那么当这个用 ...

  5. 7.Django CSRF 中间件

    CSRF 1.概述 CSRF(Cross Site Request Forgery)跨站点伪造请求,举例来讲,某个恶意的网站上有一个指向你的网站的链接,如果某个用户已经登录到你的网站上了,那么当这个用 ...

  6. Python开发【Django】:中间件、CSRF

    CSRF 1.概述 CSRF(Cross Site Request Forgery)跨站点伪造请求,举例来讲,某个恶意的网站上有一个指向你的网站的链接,如果某个用户已经登录到你的网站上了,那么当这个用 ...

  7. Python学习笔记整理总结【Django】:中间件、CSRF、缓存

     一.中间件  中间件是一类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法:在django项目的settings模块中,有一个 MIDDLEWARE 变量,其中每 ...

  8. Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块

    目录 使用Django对中间件的调用思想完成自己的功能 功能要求 importlib模块介绍 功能的实现 csrf中间件详细介绍 跨站请求伪造 Django csrf中间件 form表单 ajax c ...

  9. django csrf 中间件

    CSRF和中间件 CSRF使用 说明csrf存在cookie中 全局使用 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', ...

随机推荐

  1. bzoj1271 秦腾与教学评估

    SB题!!! 我TM困惑了一下午,三份代码答案全都不一样,后来才发现要用long long来二分... 拿记事本一改就A了. 我TM...... 这SB题目...... 这惨痛的事实充分说明了long ...

  2. A1011. World Cup Betting

    With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...

  3. PHP数组大全

    一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...

  4. 斯坦福大学公开课机器学习: machine learning system design | error analysis(误差分析:检验算法是否有高偏差和高方差)

    误差分析可以更系统地做出决定.如果你准备研究机器学习的东西或者构造机器学习应用程序,最好的实践方法不是建立一个非常复杂的系统.拥有多么复杂的变量,而是构建一个简单的算法.这样你可以很快地实现它.研究机 ...

  5. Java多线程-详细版

    基本概念解释 并发:一个处理器处理多个任务,这些任务对于处理器来说是交替运行的,每个时间点只有一个任务在进行. 并行:多个处理器处理多个任务,这些任务是同时运行的.每个时间点有多个任务同时进行. 进程 ...

  6. hdu 4283"You Are the One"(区间DP)

    传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 有n个屌丝排成一排,每个屌丝都有一个不开心值a[ i ]( i=1,2,3,.. ...

  7. scrapy关键字爬取百度图库(一)

    刚入门学习python的菜鸟,如有错误,还望指教 爬取百度图库需要知道百度图库的加载方式是通过下拉加载的,所以我们需要分析Ajax请求来爬取每一页的数据信息 表述不清直接上图片 图片一是刷新页面后加载 ...

  8. 快速入门Treap(代码实现)

    学习数据结构对我来说真的相当困难,网上讲\(Treap\)的我也看不太懂,前前后后花了大概六天才把\(Treap\)学会.为了避免再次忘记,这里我整理一下\(Treap\)的基础知识和模板. 阅读此文 ...

  9. C++ MFC------ 快捷键

    创建快捷键 该文讲解如何给dialog的菜单或者按钮添加快捷键. 1.局部快捷键 点击控件,右键点“属性”,在属性Caption后添加&Key,例如: &Y,即通过按Alt+Y即可触发 ...

  10. M1-Flask-Day2

    内容概要: 1.flask - 蓝图 - 中间件 - 闪现 2.扩展 - session - wtfrom 3.上下文管理 - local-threading 4.websocket - 轮训 - 长 ...