魏晓东 发表于 2024-6-24 03:42:33

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

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


[*] 用户访问页面:
   
[*]当用户第一次访问页面时,Django 会为用户创建一个会话。如果用户还没有会话,Django 会创建一个新的会话 ID。

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

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


CSRF 令牌的检查过程


[*] 用户提交表单:
   
[*]当用户提交表单时,CSRF 令牌会作为隐藏字段包罗在哀求中。   
[*]对于 AJAX 哀求,令牌通常包罗在哀求头中。

[*] CSRF 中心件检查哀求:
   
[*]CsrfViewMiddleware 会拦截所有进入的 POST、PUT、PATCH 和 DELETE 哀求,并检查 CSRF 令牌。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: CSRF 令牌的天生过程和检查过程