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 中存儲的數據,已不受瀏覽器強制執行的同源策略的禁止,導致網站之間仍可藉此進行某種形式的數據共享。
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 來收集用戶的個人數據至關重要。