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

打印 上一主题 下一主题

主题 498|帖子 498|积分 1494

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


  • 用户访问页面
         
    • 当用户第一次访问页面时,Django 会为用户创建一个会话。如果用户还没有会话,Django 会创建一个新的会话 ID。  
      
  • 天生 CSRF 令牌
         
    • Django 天生一个随机的 CSRF 令牌,并将其与用户的会话相干联。这个令牌是一个随机的字符串,具有足够的长度和复杂性,以防止猜测攻击。   
    • 令牌通常存储在用户的会话中,可以通过 request.session 访问。  
      
  • 嵌入 CSRF 令牌
         
    • 在每个必要保护的表单中,Django 通过模板标签 {% csrf_token %} 主动嵌入 CSRF 令牌。这个标签会天生一个隐藏的输入字段,包罗当前会话的 CSRF 令牌。   
    • 示例:
      1. <form method="post" action="/submit/">
      2.     {% csrf_token %}
      3.     <!-- 其他表单字段 -->
      4.     <input type="submit" value="Submit">
      5. </form>
      复制代码


CSRF 令牌的检查过程


  • 用户提交表单
         
    • 当用户提交表单时,CSRF 令牌会作为隐藏字段包罗在哀求中。   
    • 对于 AJAX 哀求,令牌通常包罗在哀求头中。  
      
  • CSRF 中心件检查哀求
         
    • CsrfViewMiddleware 会拦截所有进入的 POST、PUT、PATCH 和 DELETE 哀求,并检查 CSRF 令牌。  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表