2021年11/28已发现这个Webkit bug,FingerprintJS回报给苹果。2022年1/17苹果标记为已
解决(resolved),可是目前他们测试iOS和MacOS的Safari还是会出现此问题。
此外,台湾媒体报导都说在更新释出前只能关闭JS,但忽略原文还有一句“仅在信任的网站
开启JS”,没JS是要怎么活啦。
FingerprintJS网站的原文做了demo演示这个bug,如果不怕死可以用iPhone Safari去他们
的网站看有多少个人资讯会泄漏:
https://youtu.be/Z7dPeGpCl8s
至于会不会泄漏密码? 先看原理
FingerprintJS原文提及
"Safari 15’s implementation of the IndexedDB API that lets any website track yo
ur internet activity and even reveal your identity"
“Safari 15的IndexedDB API实作可能会让网站得以追踪你的网络活动甚至是真实身分。”
再引用网易科技的报导解释原理:
“IndexedDB遵守同源策略,该策略限制一个源与其他源收集的数据交互。 本质上,只有生
成数据的网站才能存取。举例来说,如果您在某个页签开启电子邮件帐户,然后在另一个页
签中开启恶意网页,同源策略会阻止恶意页面查看和干预使用者的电子邮件。”
“苹果在Safari 15中应用IndexedDB API违反了同源策略。 当网站与Safari中的数据库交
互时,在同一浏览器会话(session)中的所有其他活动框架、页签和视窗都会创建一个同名
的新(空)数据库。 ”
简单来说,Safari存取IndexedDB的行为不合规范,所有视窗共用同一个数据库,导致A网站
能够看到另一个B网站所建立的数据库名称。
这可能会导致资料外泄,例如因Google帐户API所产生的识别ID,被追踪甚至还原出用户身
分。更糟糕的是网页可在背景蒐集使用者资料而不被察觉。
此外,有些热门网站设计不良,存取IndexedDB不需使用者输入密码验证。
又,由于iOS浏览器app全使用它家的引擎之故,每款浏览器都存在泄漏风险,不像macOS起
码还可以换其他浏览器躲避。
但这不代表Safari密码会被偷光,起码FingerprintJS原文没有推论到这里。只能说个人资
料有风险,而且不易察觉。
且对苹果来说这么重视隐私的公司,这种bug不修说不过去。
参考资料
Martin Bajanik. 2022/1/15. Exploiting IndexedDB API information leaks in Safari
15. FingerprintJS.
https://reurl.cc/GoxGgA
网易科技报道。2022/1/18。苹果Safari浏览器被曝漏洞 或泄露浏览活动和谷歌账户信息。
网易。https://reurl.cc/QjLVk2