Django CSRF_COOKIE_DOMAIN - 如何优雅地改变

时间:2014-11-14 15:59:41

标签: django cookies django-csrf

我有一个使用CSRF保护的公共Django站点。

我没有设置CSRF_COOKIE_DOMAIN。我的网站使用子域名。

有时,用户最终会在csrftoken以及.toplevel.com上设置sub.toplevel.com Cookie。这会导致问题,因为如果在检查中使用了错误的cookie,CSRF检查将失败。

我想将CSRF_COOKIE_DOMAIN设为.toplevel.com。但是,我还要删除任何csrftoken子域的*.toplevel.com个Cookie。我该怎么做?

如果我不删除其他cookie,我将最终在最初的情况下,在不同的域上有两个同名的cookie,这会导致问题。

1 个答案:

答案 0 :(得分:9)

我有类似的问题。我处理它的方式与CSRF_COOKIE_DOMAIN一起我也更改了CSRF_COOKIE_NAME,使旧的"csrftoken" Cookie过时。