我们是否可以为一个活动会话更改CSRF令牌每个表单请求甚至每个请求而不是相同的令牌?
答案 0 :(得分:32)
假设您有权访问 request
对象:
from django.middleware.csrf import rotate_token
rotate_token(request)
答案 1 :(得分:8)
在csrf中间件中,他们做了类似这样的事情,它会覆盖cookie集:
request.META["CSRF_COOKIE"] = _get_new_csrf_key()
您可以通过_get_new_csrf_key()
导入from django.middleware.csrf import _get_new_csrf_key()
。既然是一种私人方法,我会建议不要这样的黑客。
答案 2 :(得分:3)
如果你想在中间件中使用它:
from django.middleware.csrf import rotate_token
class CSRFRefresh(object):
def process_response(self, request, response):
rotate_token(request)
return response