Firefox 88加大對window.name跨站隱私濫用的斗爭力度
Mozilla 剛剛在一篇官方博客中宣布,他們很高興地為 Firefox 88 引入了一項新的保護措施,以進一步防止 Web 上的隱私泄露。據悉,自 1990 年代末期以來,Web 瀏覽器已廣泛使用 window.name 屬性來存儲網頁數據。但在更新到 Firefox 88 之后,追蹤器將無法再通過濫用 window.name 屬性來跨網站追蹤用戶(比如識別用戶或窺探其瀏覽歷史記錄)。
為了封堵這方面的漏洞,Firefox 現針對創建 window.name 屬性的網站而施加了特定的限制。
此前,網頁窗口的 window.name 屬性允許以超鏈接或表單為目標,讓用戶訪問的任何網站都能夠調用 window.name 屬性,以作為存放任何數據的一口大鍋。
但從歷史上來看,window.name 中存儲的數據,已不受瀏覽器強制執行的同源策略的禁止,導致網站之間仍可借此進行某種形式的數據共享。
舉個例子,假設位于 https://example.com/ 的頁面將 window.name 屬性設置為“my-identity@email.com”。
那就算用戶點擊鏈接并導航到了 https://malicious.com/ 惡意站點 ,該信息也會得到保留。
相當于在用戶不知情或未同意的情況下,惡意站點上的頁面仍能夠讀取相關信息。
此前多年,追蹤公司一直在濫用這方面的泄露細細,并將之有效地轉變為跨網站的數據傳輸渠道。更糟糕的是,惡意站點也能夠一窺 window.name 屬性中的內容,導致用戶在無意間泄露了隱私數據。
慶幸的是,在升級到 Firefox 88 之后,瀏覽器將嘗試識別 window.name 的潛在有害使用,并在此種情況下竭力清除、以避免它被濫用。舉個例子,若點擊的鏈接未打開彈出窗口,則 Firefox 就只會清除 window.name 。
此外為了避免不必要的體驗破壞,若用戶導航回到了之前的站點,Firefox 會自動將 window.name 屬性恢復為該站點的先前值。
在這套雙重規則的制約下,Firefox 88 得以有效地將數據限制在原站點范圍內(有些類似于 Firefox 的 Cookie 全面防護功能),對防止網站濫用 window.name 來收集用戶的個人數據至關重要。