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