Categories
程式開發

蘋果完全屏蔽第三方Cookie,七天清空本地存儲


蘋果 WebKit 博客分享了智能跟踪預防技術(ITP)的最新進展:完全屏蔽第三方 Cookie,七天清空本地存儲,簡化開發人員工作。但也有開發者唱起了反調,覺得蘋果只是說起來冠冕堂皇,實際上還是為了商業考慮。 Why?

蘋果完全禁止第三方 Cookie

3 月 24 日,蘋果 WebKit 博客發表了一篇題為《Full Third-Party Cookie Blocking and More》的文章,正式宣布它開始默認完全屏蔽第三方 Cookie。蘋果表示,“這是對隱私的一項重大改進,因為它消除了任何異常或允許進行一點跨站點跟踪的可能。”

此次更新涉及iOS,iPad OS 13.4 和macOS 上的Safari 13.1,這項名為智能跟踪預防的(ITP)的技術首次發佈於2017 年,從當時的禁止大部分第三方Cookie 已發展到今天的完全禁止第三方Cookie。

據了解,Safari 是市面上第一個默認情況下完全禁止第三方 Cookie 的主流瀏覽器,除 Safari 之外只有 Tor 瀏覽器是相通的默認設置,而後者的市場份額很小。無獨有偶,瀏覽器市場中絕對的霸主 Chrome 也在今年 1 月份宣布,未來 2 年內將逐步淘汰第三方 Cookie。

蘋果完全屏蔽第三方Cookie,七天清空本地存儲 1

2 月全球瀏覽器市場份額

蘋果完全屏蔽第三方Cookie,七天清空本地存儲 2

10 大瀏覽器型號

蘋果表示,將向 W3C 的隱私小組分享相關經驗,以幫助其他瀏覽器取得飛躍。

完全屏蔽的好處是什麼?

WebKit 在博客中分享了完全屏蔽第三方 Cookie 的好處,具體而言有以下幾個方面。

  • 消除了 Cookie Blocking 中的狀態性;
  • 使跨站點洩露用戶信息(例如登錄指紋)不再可行;
  • 禁用通過第三方請求對網站的跨站點偽造攻擊;
  • 刪除使用輔助第三方域標識用戶的功能。否則,即使用戶刪除第一方的網站數據,此類設置也可能保留 ID;
  • 簡化了開發人員的工作,如果需要使用 Cookie,蘋果建議通過 Storage Access API 進行。

鑑於大部分第三方腳本已轉移到類似 LocalStorage 的第一方存儲方式,蘋果同時宣布所有腳本可寫入的存儲都只保留 7 天,7 天之後本地儲存的數據將會被自動刪除。受影響的存儲格式包括 Indexed DB、LocalStorage、Media keys、SessionStorage 和 Service Worker registrations。

開發人員可以根據 OAuth 2.0 授權、Storage Access API 或臨時兼容性修補程序的方式在過渡期解決此協議所帶來的不便。

蘋果的博文中提到,全球瀏覽器狀態已成為 Web 社區隱私保護中的關鍵一環。自2018 年歐盟最嚴數據保護法規《GDPR》生效以來,各大廠商紛紛在隱私保護的鐵鎚下吞下了巨額罰單:谷歌被處以5000 萬歐元罰款,英航、萬豪等大企業也因數據洩露被處以數千萬級別的罰款。

第三方 Cookie 由於其隨著時間發展,收集大量用戶信息的特點,成為了數據洩露的重災區。專家表示,“在HTML5 本地存儲相關技術出現前,Cookie 是在客戶端保存用戶數據的唯一手段,但Cookie 本身有很多問題,比如大小限制、明文存儲等。不過,其最大的問題還是安全性。很多的安全漏洞都是源於Cookie 被竊取。”

在《GDPR》生效以後,很多網站開始添加 Cookie 通知,但這對於隱私保護並沒有起到多好的效果,於是蘋果、谷歌等企業開始決定從源頭上禁止第三方 Cookie 以解決這個問題。

來自開發者的不同聲音

一位名為 Aral Balkan 的開發者在自己的博客上寫下了一篇文章,標題名為《Apple just killed Offline Web Apps while purporting to protect your privacy: why that’s A Bad Thing and why you should care》。從標題上就可以看出觀點的激進,而內容事實上也同樣如此。

在他看來,完全屏蔽第三方Cookie 以保護隱私只是看起來很美,而7 天清空本地存儲的規則卻完全阻止了未來任何去中心化應用程序使用瀏覽器(客戶端) 作為對等網絡中可信複製節點的可能。

更進一步,他認為蘋果公司表面上表現得很關注隱私,實際上是因為不少廠商的做法侵犯了它將隱私作為商業模式的核心宗旨。

“你幾乎可以認為,他們會用 App Store 來干點兒什麼。”

Balkan 的觀點雖然激進,但也並非全無道理。事實上,蘋果一直以來飽受詬病的地方正是如此。此前 Hacker News 上就曾有開發者廣泛討論蘋果在自己的平台上對於 Web 技術的層層阻礙。

用來構建 App 的編程語言背後的軟件技術,可以使開發者在開發支持 Linux、Android、Windows 和 macOS 等操作系統產品時,“復用”他們為 Web 程序所編寫的代碼。但是蘋果並不喜歡這種Web 技術的循環再利用方式,它希望Mac App Store 中塞滿你在其他任何地方都找不到的應用程序,不想讓在各個平台上都能見到的應用充斥App Store。

比如之前蘋果 Mac App Store 對 Electron 的禁令:這些應用程序“試圖隱藏私有 API 的使用”。蘋果的理由是這些私有化API 存在潛在風險,這個理由本身並沒有問題,但考慮到Electron 多年來一直使用私有化API 的相安無事甚至大幅改善了功耗,以及蘋果推薦的工具讓用戶體驗變差的事實,不得不引人深思。

蘋果公司還阻礙了漸進式 Web 應用程序(PWA)的落地,這項技術與 Electron 一樣,允許開發人員為桌面和移動端構建效果類似原生的應用。蘋果的做法是只實現該標準的一部分,結果讓它與完整標準相距甚遠,使開發者難以依靠。如果用戶能在 Chrome 或 Firefox 中啟動 PWA 應用就不會出現這些問題,但是 iPhone 和 iPad 用戶無法安裝第三方瀏覽器,蘋果公司也關閉了用戶使用基於 PWA 技術的途徑。

而在國內,小程序與蘋果的愛恨情仇就更為廣大開發者所知,這裡不再贅述,參考:小程序:越獄未遂。

就事論事而言,蘋果此舉值得稱讚。但禁用第三方 Cookie 就能保護好用戶隱私了嗎?卻也未必。

有人說,互聯網開始變得不安全,就是因為搞安全的人出來了。此言誠不我欺。