使用Django 1.4,我不断地让CSRF cookie间歇性地加入到这样的事情中:
“Set-Cookie:csrftoken = \”Set-Cookie: csrftoken = WStoUW0COc1JvURmsc0vwRgJ8uCWR5Hh \ 073 expires = Mon \ 054 26-Aug-2013 15:24:38 GMT \ 073 Max-Age = 31449600 \ 073路径= / \“”
(而不是说WStoUW0COc1JvURmsc0vwRgJ8uCWR5Hh
,这是该CSRF cookie的实际值。)
我似乎在任何对象上多次重新加载“添加/编辑”页面后会发生这种情况(我没有对它们进行全部测试,但我在自定义模型和Django.auth的用户上进行了测试)。在那之后,即使我删除它,我几乎总是在下次刷新时再次获得它。
Cookie的内容非常容易让人想起this bug,但
我曾经认为DajaxICE与此有关,但它只是将问题暴露出来,因为在错误设置cookie后它会失败。如上所述,这发生在管理页面上,而这些页面上没有并且从未使用过DajaxICE内容。
更新:这看起来更像是two threads中讨论的内容,但即使是那些需要使用TemplateResponse的视图(请检查Django Admin的添加视图),有csrf保护(检查),并使用cache_page(或者我假设至少一些形式的缓存 - 添加视图绝对没有)。
看到使用django_annoying的ajax_request显然不关心这个cookie是乱码(并且Django Admin从未这样做过),我可以继续而不解决这个问题,但是......那是什么?!据我所知,打破这个问题所需要的只是使用网站范围的缓存和管理网站,这有点荒谬......更不用说Django管理员并不介意有一个乱码的事实