Mozilla 刚刚在一篇官方博客中宣布,他们很高兴地为 Firefox 88 引入了一项新的保护措施,以进一步防止 Web 上的隐私泄露。据悉,自 1990 年代末期以来,Web 浏览器已广泛使用 window.name 属性来存储网页数据。但在更新到 Firefox 88 之后,追踪器将无法再通过滥用 window.name 属性来跨网站追踪用户(比如识别用户或窥探其浏览历史记录)。
为了封堵这方面的漏洞,Firefox 现针对创建 window.name 属性的网站而施加了特定的限制。
此前,网页窗口的 window.name 属性允许以超链接或表单为目标,让用户访问的任何网站都能够调用 window.name 属性,以作为存放任何数据的一口大锅。
但从历史上来看,window.name 中存储的数据,已不受浏览器强制执行的同源策略的禁止,导致网站之间仍可借此进行某种形式的数据共享。
window.name 持续状态下的跨源导航
举个例子,假设位于 https://example.com/ 的页面将 window.name 属性设置为“my-identity@email.com”。
那就算用户点击链接并导航到了 https://malicious.com/ 恶意站点 ,该信息也会得到保留。
相当于在用户不知情或未同意的情况下,恶意站点上的页面仍能够读取相关信息。
Firefox 88 清理了 window.name 后的跨源导航
此前多年,追踪公司一直在滥用这方面的泄露细细,并将之有效地转变为跨网站的数据传输渠道。更糟糕的是,恶意站点也能够一窥 window.name 属性中的内容,导致用户在无意间泄露了隐私数据。
庆幸的是,在升级到 Firefox 88 之后,浏览器将尝试识别 window.name 的潜在有害使用,并在此种情况下竭力清除、以避免它被滥用。举个例子,若点击的链接未打开弹出窗口,则 Firefox 就只会清除 window.name 。
此外为了避免不必要的体验破坏,若用户导航回到了之前的站点,Firefox 会自动将 window.name 属性恢复为该站点的先前值。
在这套双重规则的制约下,Firefox 88 得以有效地将数据限制在原站点范围内(有些类似于 Firefox 的 Cookie 全面防护功能),对防止网站滥用 window.name 来收集用户的个人数据至关重要。