Django:根据请求/表单生成新的CSRF令牌

dee*_*dee 13 django csrf

我们是否可以为一个活动会话更改CSRF令牌每个表单请求甚至每个请求而不是相同的令牌?

un3*_*33k 32

假设您有权访问该request对象:

from django.middleware.csrf import rotate_token
rotate_token(request)
Run Code Online (Sandbox Code Playgroud)


Tor*_*cht 8

在csrf中间件中,他们执行类似这样的操作,它会覆盖cookie集:

request.META["CSRF_COOKIE"] = _get_new_csrf_key()
Run Code Online (Sandbox Code Playgroud)

你可以_get_new_csrf_key()通过导入from django.middleware.csrf import _get_new_csrf_key().既然是一种私人方法,我会建议不要这样的一些黑客.