Django场景下表单csrf_token未随POST请求回传服务器会产生什么影响?
Django CSRF Token未提交相关问题解答
- CSRF Token绑定规则:Django默认将CSRF Token与用户会话(Session)绑定,而非为每个表单生成独立的一次性Token。同一会话有效期内,所有页面下发的CSRF Token是通用的,不会单独绑定到某一个表单。
- 未提交表单时的Token生命周期:Django默认不会在校验CSRF Token后删除该凭证,也不会因为下发的Token没有被回传就主动清理。该Token会一直保持有效,直到用户会话过期、用户登出导致会话销毁;如果你主动开启了
CSRF_TOKEN_ROTATE_ON_EVERY_REQUEST配置,Token会在每次新请求时自动轮换,旧Token同步失效。你提到的用户不提交评论表单的场景下,不会产生独立的残留Token。 - 安全风险说明:这种情况完全不存在安全漏洞风险。CSRF Token的设计本身就是会话级别的校验凭证,只要Token没有泄露给第三方站点,同一会话内无论下发多少次未使用的Token,都不会产生安全问题。你给出的评论表单代码用法完全符合Django的设计预期,不需要做额外调整。
内容的提问来源于stack exchange,提问作者Omar AlHadidi
相关产品推荐
相关产品推荐

