长期以来,苹果一直以隐私保护为主要卖点,强烈推荐自家Safari浏览器,比如部署防止跨站措施跟踪和隐私报告。但近日,该软件在处理IndexedDBAPI时暴露了一个漏洞,可能导致签名失败以及与用户浏览习惯相关的隐私信息泄露。(来自:FingerprintJS)浏览器指纹识别服务FingerprintJS在博文中指出,苹果在Safari15中实现IndexedDBAPI存在严重的隐私数据泄露隐患。据研究人员称,该漏洞将允许任何网络跟踪器窥探用户的互联网活动并最终确定他们的身份。据悉,IndexedDB是大多数浏览器客户端采用的存储API,多用于保存数据库等数据。通常,同源策略会限制特定网站可以访问哪些数据。此外,一般只允许一个网站访问其产生的数据,而不能访问其他网站的数据。令人尴尬的是,在适用于macOS、iOS和iPadOS的Safari15中,我们惊讶地发现,每当网站与其数据库交互时,同一浏览器会话中的所有其他活动框架、选项卡和窗口,都会创建一个新的空数据库,其中包含一样的名字。由此产生的数据泄漏是一个问题,因为它可以让恶意站点知道在同一会话中的不同选项卡或窗口中访问的其他站点。当您考虑到某些数据库具有唯一的、特定于站点的名称时,问题会变得更糟。对于可能共享相同身份验证凭据的站点(例如Gmail和YouTube),数据库名称也可以包含相同的经过身份验证的Google用户ID。HowIndexedDBinSafari15leaksyourbrowsingactivity(via)测试发现,具有通用唯一标识符的索引数据库是由广告网络创建的。值得庆幸的是,Safari的TrackingPrevention功能阻止了这些数据库名称以这种方式泄露。即使是私人浏览窗口也不能幸免于此问题,但浏览会话仅限于单个选项卡,这在一定程度上缓解了IndexedDBAPI缺陷。目前用户对此问题无能为力,除了默认阻止JavaScript(仅在受信任的站点上启用,但会对浏览体验产生不利影响)。macOS用户可以暂时选择其他浏览器(GoogleChrome/MozillaFirefox等),但iOS/iPadOS用户就没那么幸运了,只能等待苹果和WebKit开发团队在下次更新中修复。
