zoukankan      html  css  js  c++  java
  • 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. 不能比较成功 拒绝
  • 相关阅读:
    nginx 启动相关的
    爬取豆瓣读书/文件存储数据/数据库存储数据
    python Web 开发三剑客比较
    scrapy
    爬虫自动登录抽屉
    组合搜索
    html瀑布流
    Ajax上传文件/文件预览
    Form组件
    django分页
  • 原文地址:https://www.cnblogs.com/russellyoung/p/10105963.html
Copyright © 2011-2022 走看看