Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django CSRF_COOKIE_域-如何优雅地更改_Django_Cookies_Django Csrf - Fatal编程技术网

Django CSRF_COOKIE_域-如何优雅地更改

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,

我有一个公共Django网站,它使用CSRF保护

我没有设置
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您能帮我解决我的问题吗。看来你会明白的。