许多人都听说过第三方 Cookie,有些浏览器甚至默认阻止这些 Cookie。有些人甚至可能使用隐私浏览模式。然而,只有少数人似乎意识到 Adobe 的 Flash 播放器也会在您的本地硬盘上留下跨浏览器的痕迹,并允许将类似 Cookie 的信息发送回服务器,包括第三方网站。而且由于它是一个插件,Flash 不会考虑任何浏览器的隐私设置。
抱歉,这篇文章太长了,但首先我要详细说明一下为什么使用 Flash 会引发隐私问题,然后介绍一下我的测试结果:
- Flash 播放器会保存您计算机访问过的 Flash 站点的域名的跨浏览器历史记录。与浏览器的历史记录不同,此历史记录不限于特定天数。使用所谓的隐私浏览模式时也会记录历史记录。它存储在您的硬盘上(不过,如下所述,如果不访问 Adobe 网站,您就不知道存储了什么)。
- 我不确定是否保留了每次访问的日期和时间信息,但要查看域名:右键单击某些 Flash 内容,打开设置对话框,然后单击帮助图标或单击先进的按钮内的隐私选项卡。这将打开浏览器并帮助页面在 Adobe.com 上,您可以点击进入网站存储设置控制板。
- 可以清除现有列表,但无法阻止其再次被记录。
Flash 允许将数据存储在本地硬盘上,使用所谓的本地共享对象(又名“Flash Cookies”)。就像 HTTP cookies 一样,这些数据能被发送回服务器,用于跟踪目的。它们是跨浏览器的,没有到期日期,并且也不能在 Flash 首选项中设置用户定义的最大生命周期。这些不是 HTTP cookie,它们(当然)不会被浏览器的 cookie 首选项阻止,也不会在删除普通 HTTP cookie 时被删除。Adobe已经宣布版本 10.1 将在大多数流行浏览器中遵循隐私浏览,但不幸的是,没有关于在手动删除正常 cookie 时也删除数据的消息。而且它的实现可能会令人困惑:
[..] 如果在创建 Flash Player 实例时浏览器处于正常浏览模式,则该特定实例将永远处于正常浏览模式(隐私浏览已关闭)。因此,在不刷新页面或关闭隐私浏览窗口的情况下打开或关闭隐私浏览不会影响 Flash Player。
本地共享对象不仅限于您访问的网站,第三方存储默认启用。全局存储设置面板可以取消选择默认允许第三方 Flash 内容在您的计算机上存储数据由于跨浏览器和无过期特性(以及很少有人知道这一点),我认为跨浏览器的第三方 Flash Cookies 对于访问者跟踪比第三方普通 HTTP cookies 更危险。它们甚至用于恢复用户尝试删除的纯 HTTP Cookie:
“所有广告商、网站和网络都使用 Cookie 进行定向广告,但 Cookie 正受到攻击。根据目前的研究,40% 的用户正在删除 Cookie,这造成了严重问题。”United Virtualities 创始人 Mookie Tenembaum 说道。“从简单的频率上限到更复杂的行为定位,cookie 是任何在线广告活动的重要组成部分。PIE [“持久识别元素”] 将为发布商和第三方提供商提供持久的 cookie 备份,从而有效地使它们无懈可击“,Tenembaum 补充道。
[…] 为了证明这种跟踪机制的合理性,UV 的 Tenembaum 表示,“用户对技术不够精通,不知道 Cookie 是好是坏,也不知道它是如何工作的。”
- 当选择没有任何(零 KB)指定您尚未访问的网站可用于在计算机上存储信息的磁盘空间量并检查不再询问那么有些网站就无法工作。但是,如果将其设置为没有任何但没有选择不再询问,然后选择否定每当提示。两种选择都会导致允许零 KB 数据,但行为有所不同。
- 该插件还提供了一个Flash Player 缓存对于 Adobe 签名的文件。我猜这些文件不是问题。
所以:如何自动删除该信息?
在 Mac 上,可以settings.sol
在以下位置找到每个访问过的 Flash 网站的文件和文件夹:
$HOME/资源库/首选项/Macromedia/Flash Player/macromedia.com/support/flashplayer/sys/
删除settings.sol
文件和 中的所有文件夹sys
,会从设置面板中删除该痕迹。但是,实际的本地共享项目位于其他地方(请参阅维基百科对于其他操作系统上的位置),位于以下随机命名的子文件夹中:
$HOME/资源库/首选项/Macromedia/Flash Player/#SharedObjects
但是:如何自动删除它?偶尔删除文件夹和文件settings.sol
(例如使用launchd
或 Windows 的任务计划程序)可能会干扰活动浏览器。或者,是否可以安全地假设,考虑到跨浏览器的性质,插件不会在活动期间删除内容?仅在注销时清除可能对那些一直处于休眠状态的用户不起作用。
Firefox 用户可以安装更好的隐私或者异议删除本地共享对象(对于所有其他浏览器也一样)。我不知道这是否也会删除网站域名的踪迹。
或者:如何阻止 Flash 存储历史记录?
计划变更:我目前正在测试禁止 Flash 写入其自己的文件sys
夹#SharedObjects
。到目前为止,Flash 尚未尝试恢复权限(尽管删除文件夹时,Flash 当然会重新创建它们)。我没有遇到任何问题,但这可能需要一些时间来验证,使用多个浏览器和网站。我还没有找到报告错误的日志。在 Mac 上:
cd "$HOME/Library/Preferences/Macromedia/Flash Player/macromedia.com/support/flashplayer"
rm -r sys/*
chmod uw syscd“$HOME/资源库/Preferences/Macromedia/Flash Player”
# 保留随机命名的子文件夹(仅保留最新的就足够了;见下文)
rm -r \#共享对象/*/*
chmod -R uw \#共享对象
我猜上面的chmod
方法在旧的 Windows 系统上是无法实现的(我不确定 XP 和 Vista 是否可行)。不过也许在 Windows 上可以替换文件夹 sys
和#SharedObjects
假人文件名字相同?有人知道吗?
显然,阻止 Flash 为所有网站存储这些本地共享对象可能会引起问题。一些测试结果(Mac OS X 上的 Flash 10):
- 当阻止
sys
文件夹时(即使#SharedObjects
文件夹保持可写状态),则YouTube在观看多个视频时不会记住您的音量设置。在访问受信任的站点时暂时允许对被阻止的文件夹进行写访问(以仅有的为您喜欢的域创建文件夹,也许包括引用settings.sol
)可以解决这个问题。这样,对于 YouTube,Flash 可以允许写入sys/#s.ytimg.com
和#SharedObjects/s.ytimg.com
,而 Flash 无法创建新的其他域的文件夹。之后可能还需要将其设为settings.sol
只读,或者再次删除。 - 当同时阻止
sys
和#SharedObjects
文件夹时,YouTube 和Vimeo工作正常(尽管他们可能不记得任何设置)。然而,奔跑中的点滴甚至拒绝显示视频播放器。通过暂时解除文件夹的阻止#SharedObjects
,允许 Flash 创建具有随机名称的子文件夹,可以解决这个问题。在此文件夹中,它会为当前 Flash 网站 (content.bitsontherun.com
) 创建另一个文件夹。删除该网站特定的文件夹,并阻止#SharedObjects
这两个文件夹和随机命名的子文件夹,似乎仍然允许 Bits on the Run 运行,即使它仍然无法将任何内容写入磁盘。因此:随机命名的子文件夹(即使有写保护)的存在对某些网站来说很重要。 - 当我第一次找到该
#SharedObjects
文件夹时,它包含许多名称随机的子文件夹,其中一些是在同一天创建的。我想知道 Flash 何时决定要创建一个新文件夹,以及它如何确定(并记住)该随机名称。 - 有一段时间,我考虑不阻止
sys
和的写入访问#SharedObjects
,而是明确为知名的第三方跟踪域创建只读文件夹(例如基于来自 AdBlock Plus 的列表)。这样,任何其他域仍然可以创建本地共享对象。但列表会很长,而且来自 AdBlock Plus 的域可能都是第三方域,因此禁用允许第三方 Flash 内容在您的计算机上存储数据可能会有同样的结果。
有人有经验吗?
(最后说明:如果上述设置面板链接将来不起作用,请使用 Flash Player 已知的 URL 作为起点:www.adobe.com/go/settingsmanager。 也可以看看 ”你删除了 Cookie?再想想“在 Wired.com 上——它本身也使用 Flash cookies...对于非常可疑的使用 Time Machine:你可能想要为每个用户排除这两个文件夹,并且消除备份中已有的跟踪。)
答案1
几个月前,我在 Mac 上实施了您描述的解决方案。它确实阻止了跟踪,但它阻止了相当多更复杂的 Flash 应用程序(任何具有会话间持久性的应用程序,最明显的是具有进度跟踪的 Flash 游戏)正常运行,或者根本无法运行。最终,我厌倦了故障排除并删除了文件夹锁。
我的临时解决方案是使用 Flash 拦截器。因为我只加载我信任的网站的 Flash 对象(例如YouTube) 隐私问题即使没有消除,也得到了缓解。
答案2
答案3
我认为在 Windows 上CCleaner将会清除它。
答案4
只是一个想法:
尝试使用:
hdiutil -shadow # lots more besides this, I just thought of it.
并将路径挂载为只读。让 Flash 写入影子文件,并维护该目录的已知状态。我将对 TopSites 和 Safari 所获取的网页图片数据库进行同样的尝试。
为什么?
因为我不想删除数据。我希望将修改后的数据发回给他们。这样我也可以参与这个数据挖掘游戏了。