配置 Firefox,使 cookie 管理比仅管理 TLD 以下的第一个域名更加精细

配置 Firefox,使 cookie 管理比仅管理 TLD 以下的第一个域名更加精细
TL;DR 各位:实际问题在最后一段中以粗体显示;其余部分是解释,这样人们就不会认为我有XY 问题

我负责维护我所在组织内联网上的 Firefox 安装。此内联网中的几乎所有服务器都使用相同的根域,例如myorg.com,但从逻辑上讲,它是一个由独立维护的服务器组成的整个内部互联网,其中各个子域彼此无关(hr.myorg.com完全独立于 进行维护payroll.myorg.com,并且gitlab.myorg.com独立于两者)。

问题是,一些写得不太好的网站经常会出现与会话登录 cookie 相关的糟糕状态,导致网站无法使用(它显示您已退出,但您无法再次登录;无论如何,登录都是通过 PKI 证书处理的,因此您不应该需要手动登录,但 PKI 身份验证被严重入侵到现有产品上,因此在错误状态下无法工作),个人用户唯一可用的解决方案是清除该站点的 cookie 并重新加载(触发新的 PKI 登录,一切正常)。问题是,至少从 Firefox 91 ESR 开始(我不记得 Firefox 78 ESR 或更早版本是否存在此问题;我不这么认为,因为我记得清除每个子域的 cookie),cookie 清除似乎在第一级子域级别进行操作,所以如果我想清除的 cookie badcookies.myorg.com,cookie 清除对话框(在 URL 栏的Site Information→Clear cookies and site data…下拉菜单和中Edit→Settings→Privacy & Security→Cookies and Site Data→Manage Data)只提供清除它们的选项myorg.com(这意味着我会丢失 99% 没有问题的网站的 cookie,只是为了修复有问题的网站;我们的大多数网站不怎么使用 cookie,但如果清除 cookie,那些使用的 cookie 会丢失所有的每个用户的配置,恢复起来可能很麻烦)。

唯一有选择地删除特定子域的 cookie 的解决方法是转到Edit→Settings→Privacy & Security→Cookies and Site Data→Manage Exceptions并添加例外以https://badcookies.myorg.com使其成为例外。当问题发生时,告诉用户重新启动 Firefox,重新启动后坏的 cookie 就会消失。这显然不是一个很好的解决方案;我知道如何默认Allow for Session设置行为(通过Allow for Sessionstrategies.json 的Cookies政策),但强制重启浏览器并不是最理想的做法。

我怀疑浏览器最终会根据以下因素来选择如何精细地管理 Cookie:Mozilla 的公共后缀列表(所以如果myorg.com它在那个列表上,我的问题就解决了)。但是鉴于它myorg.com根本不在公共互联网上(如果它在,它将是一个单一连贯的存在,而不是内部网上大量独立的服务),我宁愿不尝试将它添加到该列表中,而只是等待一年,直到他们削减下一个使用更新列表的 ESR,并用常规互联网上没有人会使用的数据污染它。

综上所述,我的问题是:管理员有没有办法全局配置 Firefox(如果重要的话在 Linux 上)这样,可以独立地手动清除给定域的各个子域设置的 cookie 吗?如果无法通过全局配置实现,那么我是否可以建议人们进行一次设置并永远受益?理想情况下,解决方案不需要第三方扩展(将东西导入到内联网很麻烦,如果可以避免的话,IT 安全人员不喜欢这样做),但如果这是唯一的选择,我会考虑(导入一次并使用策略为每个人安装它比“糟糕的网站仍然无法使用糟糕的解决方法,直到糟糕的网站的开发人员(他们自己显然不是优秀的开发人员)修复它”要好。

答案1

您无需配置即可完成此操作。在网站上,使用 打开“开发人员工具”面板F12,转到“存储”→“Cookie”,然后选择并删除导致问题的 Cookie。

(这也存在于 Chrome 和衍生产品中,只是同一选项卡的标题是“应用程序”而不是“存储”。)

有大量的“cookie 编辑器”扩展可以执行相同的操作,并且可能具有更方便的界面。

如果你知道哪些特定的 cookies 导致了问题,并且它们没有“HttpOnly”标志(意味着它们可以通过 JavaScript 设置),那么应该可以书签小工具当单击时,将取消设置这些 cookie。

相关内容