• Django的csrf中间件


    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. 不能比较成功 拒绝
  • 相关阅读:
    <O(n),O(1)>的LCA
    hdu6110
    ACM模板
    prufer编码
    UvaLive6893_The_Big_Painting
    HDU5669
    Codeforces786B
    二分图部分总结
    Git简介和Windows下安装步骤
    笔记本电脑插入耳机后无法使用解决办法
  • 原文地址:https://www.cnblogs.com/russellyoung/p/10105963.html
Copyright © 2020-2023  润新知