Django CSRF_COOKIE_域-如何优雅地更改
我有一个公共Django网站,它使用CSRF保护 我没有设置Django CSRF_COOKIE_域-如何优雅地更改,django,cookies,django-csrf,Django,Cookies,Django Csrf,我有一个公共Django网站,它使用CSRF保护 我没有设置CSRF\u COOKIE\u域。我的网站使用子域 有时,用户在.toplevel.com和sub.toplevel.com上设置了csrftokencookie。这会导致问题,因为如果在检查中使用了错误的cookie,CSRF检查将失败 我想将CSRF\u COOKIE\u域设置为.toplevel.com。但是,我还想删除任何*.toplevel.com子域的csrftokencookie。我该怎么做 如果我不删除其他Cookie,
CSRF\u COOKIE\u域
。我的网站使用子域
有时,用户在.toplevel.com
和sub.toplevel.com
上设置了csrftoken
cookie。这会导致问题,因为如果在检查中使用了错误的cookie,CSRF检查将失败
我想将CSRF\u COOKIE\u域
设置为.toplevel.com
。但是,我还想删除任何*.toplevel.com
子域的csrftoken
cookie。我该怎么做
如果我不删除其他Cookie,我只会在原来的情况下,在不同的域上有两个同名的Cookie,这会导致问题。我有一个类似的问题。我处理它的方式与
CSRF\u COOKIE\u DOMAIN
一起,我还更改了CSRF\u COOKIE\u名称
,使旧的“csrftoken”
cookies过时。唯一的缺点是它不是一个非常优雅的方法(在新配置之后出现的POST请求将失败)。这是真的,如果在执行GET和立即POST请求之间进行此更改,则将失败。如果站点上的用户不多,这是一个非常不可能的情况,但如果出现了一个大问题(例如,如果有数千个并发用户),可以通过临时重写django.middleware.csrf.CsrfViewMiddleware
并在process\u view
方法中检查这两个cookie名称来解决此问题。@AlexeyKuleshevich您能帮我解决我的问题吗。看来你会明白的。