Chrome 不会删除会话 cookie

IT技术 javascript session google-chrome cookies
2021-01-13 22:41:05

我正在尝试在 javascript 中设置会话 cookie,如下所示:

document.cookie = 'name=alex; path=/'

但是即使我退出浏览器并再次启动它,Chrome 也不会删除它。

我检查了 Firefox 和 Opera,它们都按预期工作 - 它们在浏览器退出时删除会话 cookie。

Chrome 是否只是忽略了过期规则?

我检查了多个操作系统,发现会话 cookie 在 Windows XP 和 Ubuntu 中的 Chrome 上被删除,但在 Mac OSX Lion 中没有。

6个回答
为什么他们会向您显示缓存页面?可笑的是,这个错误在一年后仍未修复!
2021-03-14 22:41:05
对。因此,Chrome 和 FF 都破坏了会话 cookie 功能。对于 chrome,该问题已报告:code.google.com/p/chromium/issues/detail? id=128513 并标记为 WONTFIX。很明显,谷歌并没有对遵循 Chrome 中的网络标准和安全漏洞表示担忧,FF 也没有。参见 FF 错误(至少没有关闭):bugzilla.mozilla.org/show_bug.cgi ? id=443354这两个浏览器的状态真是太糟糕了。
2021-03-15 22:41:05
w3.org/Protocols/rfc2109/rfc2109 : Max- Age默认行为是在用户代理退出时丢弃 cookie。
2021-03-19 22:41:05
@ lucian303,虽然这看起来确实违反了标准,但我认为您不能“从上次继续浏览”而不“保持会话 cookie 处于活动状态”。例如,Opera、rekonq 和 IE9(通过“新标签页”中的“重新打开最后一个会话”链接)实现前者,而没有后者。因此,此类浏览器可能会向您显示缓存页面,这些页面错误地表明您仍处于登录状态和/或已失效 CSRF 保护令牌。
2021-03-23 22:41:05
注意:如果您在选项中为“Firefox 启动时”下拉菜单选择了“显示我上次的窗口和标签”,您可能会在 Firefox 中遇到完全相同的问题。出于同样的原因。按照设计,会话 cookie 将被保留,以帮助在浏览器崩溃时保持工作流程。
2021-03-27 22:41:05

我刚刚遇到了与设置为在“浏览会话结束”时过期的 cookie 相同的问题。

不幸的是,它没有,所以我玩了一下浏览器的设置。

原来,在浏览器关闭时记住打开的选项卡的功能是问题的根源。(该功能被命名为“启动时”-“从我离开的地方继续”。至少在当前版本的 Chrome 上)。

这也发生在 Opera 和 Firefox 上。

至少默认情况下未启用此选项。谷歌帮助中也提到了这个“功能” :“Chrome 还将恢复您的浏览数据和会话 cookie。 ”。IMO 这应该是“从我离开的地方继续”下的附加子选项。
2021-03-17 22:41:05
@Michael 这没有多大意义,因为如果您已注销,大多数使用会话的网站将不允许您返回到您所在的页面。那么您是否希望浏览器从您离开的地方继续?
2021-03-17 22:41:05
不可接受。我不希望 Chrome 忘记打开了哪些窗口,因为我经常不小心在打开了很多标签的情况下退出 Chrome。(感谢 OS X 让我滚动一个没有焦点的窗口,让我认为它确实有焦点。但是,不同的故事)。如果我必须重新登录,就这样吧。在我故意退出时不注销我很难确保我没有在任何地方登录,这可能是一个很大的安全问题。
2021-03-20 22:41:05
顺便说一句,这似乎不再是 Opera 的“问题”(已测试 Opera 22,尽管我没有注意到至少有一两个版本的问题)。Firefox 29当检查相应的“显示我的Windows和Tabs”时恢复会话cookie(根据文档)。
2021-03-21 22:41:05
这直接为我解决了这个问题!很高兴知道事情为什么会这样发生:)
2021-03-24 22:41:05

我刚刚有这个问题。我注意到,即使在我关闭浏览器后,仍有许多 Chrome 进程在运行。原来这些都来自我的 Chrome 扩展程序。

在高级设置下,我取消选中'Continue running background apps when Google Chrome is closed',我的会话 cookie 开始正常工作。

对于我们所有的开发人员来说仍然是一个痛苦,他们一直在编码,希望在用户完成浏览后会话 cookie 会被清除。

通常,“后台应用程序”与会话 cookie 持久性无关(除非您有一个记住会话 cookie 的扩展程序?!)。设置中的“从我离开的地方继续”选项也会恢复会话 cookie(如另一个答案中所述)。
2021-03-25 22:41:05
这确实是导致会话 cookie 不被删除的另一个原因。谢谢。
2021-04-01 22:41:05
它正在工作,在我禁用该选项后,我清除了会话 cookie!
2021-04-06 22:41:05

在 Chrome 的高级设置下,我不得不取消选中两者:

  • '谷歌浏览器关闭时继续运行后台应用程序'
  • “从我离开的地方继续”,“启动时”
我认为这确实是最好的答案。
2021-03-21 22:41:05
这应该投票更高,或者应该编辑最佳答案以包括“正在运行的后台应用程序”点。这影响了我。关闭“从我离开的地方继续”并没有解决问题。我还必须关闭“谷歌浏览器关闭时继续运行后台应用程序”。然后,当我关闭 Chrome 时,我的会话 cookie 被正确删除。
2021-04-06 22:41:05

这可能是因为关闭浏览器后 Chrome 仍在后台运行。尝试通过执行以下操作禁用此功能:

  1. 打开 chrome://settings/
  2. 单击“显示高级设置...”
  3. 向下导航到“系统”部分并禁用“Google Chrome 关闭时继续运行后台应用程序”。这将强制 Chrome 完全关闭,然后删除会话 cookie。

但是,我认为 Chrome 应该在开始而不是关闭时检查并删除以前的会话 cookie。