博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django的csrf中间件
阅读量:5143 次
发布时间:2019-06-13

本文共 682 字,大约阅读时间需要 2 分钟。

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. 不能比较成功 拒绝

转载于:https://www.cnblogs.com/russellyoung/p/10105963.html

你可能感兴趣的文章
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
构造者模式
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
jQuery on(),live(),trigger()
查看>>
Date Picker控件:
查看>>
你的第一个Django程序
查看>>
treegrid.bootstrap使用说明
查看>>
[Docker]Docker拉取,上传镜像到Harbor仓库
查看>>
javascript 浏览器类型检测
查看>>
nginx 不带www到www域名的重定向
查看>>
记录:Android中StackOverflow的问题
查看>>
导航,头部,CSS基础
查看>>
[草稿]挂载新硬盘
查看>>
[USACO 2017 Feb Gold] Tutorial
查看>>
关于mysql中GROUP_CONCAT函数的使用
查看>>
OD使用教程20 - 调试篇20
查看>>
Java虚拟机(JVM)默认字符集详解
查看>>
Java Servlet 过滤器与 springmvc 拦截器的区别?
查看>>