Flask – 具有相同名称的多个会话 cookie

igo*_*mon 9 cookies session csrf session-cookies flask

我在 Flask 应用程序中发现了一个非常奇怪的问题。我发现在某些情况下可以使用相同的名称创建多个会话 cookie。我附上了一张关于它的图片。它不是特定于浏览器的。

在此处输入图片说明

这本身很奇怪,但是当我尝试使用CSRF令牌验证表单时,真正的问题就来了。不幸的是,Flask 选择了错误的会话 cookie,无法成功验证 CSRF 令牌。更奇怪的是,即使提交了多个表单,问题仍然存在。唯一的解决方案是删除 cookie,这对普通用户来说不是一个选项。

是否有任何选项可以防止 Flask 创建同名的 cookie?或者至少有没有从我的应用程序中获取所有 cookie 名称的选项?在这种情况下,至少我可以删除同名的会话 cookie。

B--*_*ian 0

如果没有代码,很难判断 Flask 在哪里生成多个同名的 cookie,但有可能你让 cookie 活得很长,请参阅Flask:如何删除 cookie?来处理这个问题。

如果我理解正确的话,另一个主要问题是[我的评论]:

Flask 选择了错误的会话 cookie [多个同名的会话 cookie]

从多个同名的 cookie 中选择错误的 cookie 不是特定于 Flask 的,而是关于客户端/浏览器使用的逻辑,请参见如何处理同名的多个 cookie?