网站dropmail.me尽管我做了以下操作,但仍能够成功重新识别我(并通过“恢复访问”提供我最后使用的临时邮件地址):
- 删除我的所有浏览器历史记录,包括缓存、cookie、网站设置、下载历史记录、搜索历史记录、浏览器历史记录和活动登录。基本上所有可以通过 Firefox 菜单删除的内容。我使用的是 Firefox 52 ESR。
- 使用 VPN(据称该 VPN 可以防止 IPv6 和 DNS 泄漏),我以前访问该网站时没有使用过该 VPN。
- 使用 uBlock Origin 和 uMatrix
附加信息:
- 我的“身份”必须以某种方式绑定到我当前的浏览器配置文件。当我使用不同的浏览器或新的浏览器配置文件时,网站不会将我重新识别为同一个人。实际上,使用 Firefox 插件就足够了Priv8并创建一个新的沙箱被识别为不同的人。这可能表明存在某种无法通过 Firefox 访问或删除的网站存储。(这不是 Flash cookies,该网站不使用 Flash!)
- (更新)其他浏览器不受影响。Microsoft Edge 在删除浏览器历史记录后不允许重新识别。这是 Firefox 独有的问题!
我的问题是:
- 他们究竟是如何重新识别我的身份的?由于他们重新识别我身份的唯一动机是提供以前使用过的邮件地址,我认为他们没有使用指纹识别等“暗黑”技术,但当然也不能排除这种可能。
- 我该如何防范该网站使用的这种“超级跟踪”?
答案1
该网站正在使用 IndexedDB,MDN 写道:
IndexedDB 是一种将数据永久存储在用户浏览器中的方法。由于它允许您创建具有丰富查询能力的 Web 应用程序,而不受网络可用性的影响,因此您的应用程序可以在线和离线运行。
不清除它听起来确实像是 Firefox 的一个错误,但显然开发人员并不这么认为。比如在 2015 年 3 月,有人写道:
但是,即使您删除所有历史信息,IndexedDB 中的数据仍然会保留下来。
删除这些数据的正确方法是转到
about:permissions
地址,查找域并按下Forget About This Site
按钮。
虽然about:permissions
在我的 Firefox 55 中不起作用,但进入工具、页面信息、权限后,我得到了“清除存储”按钮:
更糟糕的是,灰色的“使用默认设置:始终询问”在上面的屏幕截图中,也没有启用“当网站要求存储数据以供离线使用时通知您”在设置,高级,网络中,避免存储有什么效果:
它似乎以下为 2011 年 8 月的内容可能仍然适用(“[only]”由我添加):
在 Firefox 4 中,默认情况下,网站最多可以使用 50MB 的 IndexedDB 存储空间。[仅限] 如果网站尝试使用超过 50MB 的存储空间,Firefox 将向用户请求权限 [...]
在适用于移动设备(Google Android 和 Nokia Maemo)的 Firefox 中,当网站尝试使用超过 5MB 的数据时,Firefox 才会请求许可 [...]
要完全禁用它,请转到about:config
并禁用dom.indexedDB.enabled
。但是,请注意,这可能也会影响插件/附加组件,这似乎是为什么有些人想要删除该选项,为此有人在 2016 年 5 月指出:
直到 IndexedDB 在接受/清除和第三方行为方面以与 cookie 相同的方式处理之前,此首选项应该存在。
(人们也许会觉得dom.storage.enabled
很有趣...)
答案2
正如 Arjan 所指出的不幸的是,目前很容易遗留安装的站点数据。随着 FF57 中偏好 UX 的重新设计,这一问题有所改善。
例如,“隐私和安全”下现在有一个“站点数据”部分:
单击站点数据“设置”将允许您删除特定来源的站点数据:
这将删除存储在 IDB、Cache API 等中的数据。它还将删除源的 cookie:
(抱歉没有在Arjan 的回答,但我想包含这些截图。)
免责声明:我是 Mozilla 员工
答案3
编辑:在修改您个人资料中的任何文件之前,请阅读 Ben Kelly 的评论。
由于 Firefox 内部没有解决方案,因此可以轻松地在 Firefox 之外实现临时修复。IndexedDB 文件存储在目录中<profile>/storage/default
。通过清空此文件夹(例如通过计划脚本),您可以完全控制数据及其保留时间。由于每个网站都存储在单独的文件夹中,因此如果您有一些编程经验,您甚至可以实现白名单/黑名单或基本上所有您想要的策略。
这不是一个好的解决方案,Firefox 开发人员也没有理由继续推迟对此问题的适当解决方案。(错误报告已经存在多年了!)
请注意,数据格式和位置可能会随时间而变化。例如,在以前的版本中,所有 IndexedDB 数据都存储在单个 SQL 文件中。