我有一个使用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,这会导致问题。
答案 0 :(得分:9)
我有类似的问题。我处理它的方式与CSRF_COOKIE_DOMAIN
一起我也更改了CSRF_COOKIE_NAME
,使旧的"csrftoken"
Cookie过时。