如何阻止 Django 为下一个请求使用响应 csrf 令牌

问题描述

我需要配置 django csrf 令牌,以便每个请求都必须有一个新令牌。我将以下代码放入我的视图中:

from django.middleware.csrf import rotate_token 
def login(request):
    rotate_token(request)

这似乎适用于更改每个请求的令牌。问题是,每当我转到新页面时,请求令牌都会使用上一页的响应令牌的值:

values from the first page

values on clicking the next page

我的设置文件:

CSRF_USE_SESSIONS = False
ACCOUNT_PASSWORD_EXPIRY = 60*60*24*30
ACCOUNT_PASSWORD_USE_HISTORY = True

SESSION_COOKIE_HTTPONLY = True

SESSION_COOKIE_SECURE = True
SESSION_COOKIE_DOMAIN = 'localhost'

SECURE_BROWSER_XSS_FILTER = True
SESSION_COOKIE_SAMESITE = 'Strict'
X_FRAME_OPTIONS = 'DENY'
PASSWORD_RESET_TIMEOUT = 720
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_SECONDS = 15768000
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
CSRF_COOKIE_SAMESITE = None
REQUEST_LOGGING_ENABLE_COLORIZE = True
SESSION_COOKIE_PATH = '/myproject'
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_COOKIE_AGE = 1800

如何更改我的代码,以便请求中的 CSRF 令牌与之前的响应不同?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)