当前位置: 首页 > news >正文

CSRF 令牌的生成过程和检查过程

在 Django 中,CSRF 令牌的生成和检查过程是通过 Django 的 CSRF 中间件 (CsrfViewMiddleware) 和模板标签 ({% csrf_token %}) 自动处理的。以下是详细的生成和检查过程:

CSRF 令牌的生成过程

  1. 用户访问页面

    • 当用户第一次访问页面时,Django 会为用户创建一个会话。如果用户还没有会话,Django 会创建一个新的会话 ID。
  2. 生成 CSRF 令牌

    • Django 生成一个随机的 CSRF 令牌,并将其与用户的会话相关联。这个令牌是一个随机的字符串,具有足够的长度和复杂性,以防止猜测攻击。
    • 令牌通常存储在用户的会话中,可以通过 request.session 访问。
  3. 嵌入 CSRF 令牌

    • 在每个需要保护的表单中,Django 通过模板标签 {% csrf_token %} 自动嵌入 CSRF 令牌。这个标签会生成一个隐藏的输入字段,包含当前会话的 CSRF 令牌。
    • 示例:
      <form method="post" action="/submit/">{% csrf_token %}<!-- 其他表单字段 --><input type="submit" value="Submit">
      </form>
      

CSRF 令牌的检查过程

  1. 用户提交表单

    • 当用户提交表单时,CSRF 令牌会作为隐藏字段包含在请求中。
    • 对于 AJAX 请求,令牌通常包含在请求头中。
  2. CSRF 中间件检查请求

    • CsrfViewMiddleware 会拦截所有进入的 POST、PUT、PATCH 和 DELETE 请求,并检查 CSRF 令牌。
http://www.lryc.cn/news/366252.html

相关文章:

  • 计算机网络学习记录 网络层 Day4(下)
  • 3、前端本地环境搭建
  • Python爬取城市空气质量数据
  • 【MyBatisPlus条件构造器】
  • 容器多机部署eureka及相关集群服务出现 Request execution failed with message: AuthScheme is null
  • Qt Graphics View Framework 使用教程
  • 【调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持】
  • flink实战--⼤状态作业调优实践指南-Flink SQL 作业篇
  • 数据结构:顺序串
  • 掌握复选框(Checkbox)的奥秘:全选与反选功能实现
  • 一篇文章带你搞懂C++引用(建议收藏)
  • 查询SQL:文章浏览1
  • android 在onCreate方法中获得view的宽高
  • SOA主要协议和规范
  • 30、matlab现代滤波:维纳滤波/LMS算法滤波/小波变换滤波
  • HTML5 视频 Vedio 标签详解
  • 三十五篇:数字化转型的引擎:赋能企业的ERP系统全景
  • 利用ArcGIS对长江三角洲地区的gdp水平进行聚类
  • 释放视频潜力:Topaz Video AI for mac/win 一款全新的视频增强与修复利器
  • MongoDB 正则表达式详解:高效数据查询与处理技巧
  • 第二十六章HTML与CSS书写规范
  • 基于FPGA的AD5753(DAC数模转换器)的控制 II(SPI驱动)
  • 【全开源】Java同城服务同城信息同城任务发布平台小程序APP公众号源码
  • [Redis]List类型
  • export 和 export default 的区别
  • 29网课交单平台 epay.php SQL注入漏洞复现
  • 推荐ChatGPT4.0——Code Copilot辅助编程、Diagrams: Show Me绘制UML图、上传PDF并阅读分析
  • rollup.js(入门篇)
  • 【Spring Cloud Alibaba】开源组件Sentinel
  • Android14 WMS-窗口绘制之relayoutWindow流程(一)-Client端