相較於第 4 版 (具體來說是第 4 版更新 API),Google 安全瀏覽第 5 版的一大進步在於資料的新鮮度和涵蓋範圍。由於保護機制高度依賴用戶端維護的本機資料庫,因此本機資料庫更新的延遲和大小是導致保護機制失效的主要原因。在第 4 版中,一般用戶端需要 20 到 50 分鐘才能取得最新版本的威脅清單。很遺憾,網路釣魚攻擊的傳播速度很快:截至 2021 年,有 60% 的攻擊網站存活時間不到 10 分鐘。分析結果顯示,約有 25% 至 30% 的網路釣魚防護措施失效,是因為資料過時。此外,部分裝置無法管理所有 Google 安全瀏覽威脅清單,而這類清單會隨著時間不斷擴大。
如果您目前使用 第 4 版 Update API,可以從第 4 版順暢遷移至第 5 版,不必重設或清除本機資料庫。本節將說明如何執行這項操作。
轉換清單更新
在 V4 中,清單是透過威脅類型、平台類型和威脅項目類型元組來識別,但在 V5 中,清單只會透過名稱識別。如果多個 v5 清單可能共用相同的威脅類型,這項功能就能提供彈性。第 5 版已移除平台類型和威脅項目類型。
在第 4 版中,使用者會使用 threatListUpdates.fetch 方法下載清單。在第 5 版中,使用者會切換至 hashLists.batchGet 方法。
請對要求進行下列變更:
- 完全移除 v4
ClientInfo物件。您不必使用專屬欄位提供用戶端 ID,只要使用眾所周知的 User-Agent 標頭即可。雖然我們並未規定在這個標頭中提供用戶端 ID 的格式,但建議您直接加入原始用戶端 ID 和用戶端版本,並以空格字元或斜線字元分隔。 - 針對每個 v4
ListUpdateRequest物件: * 從可用清單中查閱對應的 v5 清單名稱,並在 v5 要求中提供該名稱。- 移除不必要的欄位,例如
threat_entry_type或platform_type。 - v4 中的
state欄位與 v5 中的versions欄位直接相容。在第 5 版中,您可以使用versions欄位,傳送第 4 版中透過state欄位傳送至伺服器的相同位元組字串。 - 對於 v4 限制,v5 使用簡化版本,稱為
SizeConstraints。應捨棄region等其他欄位。
- 移除不必要的欄位,例如
請對回覆內容進行下列變更:
- v4 列舉
ResponseType只是由名為partial_update的布林欄位取代。 minimum_wait_duration欄位現在可以為零或省略。如果是,系統會要求用戶端立即提出其他要求。只有在用戶端於SizeConstraints中指定的最大更新大小限制小於資料庫大小上限時,才會發生這種情況。- 解碼 Rice-Golomb 編碼雜湊的邏輯需要進行兩項主要調整:
- 位元組順序和排序:在第 4 版中,傳回的雜湊值會排序為小端值。在第 5 版中,這些值會視為大端序值。由於位元組字串的字典排序等同於大端值的數值排序,因此用戶端不再需要執行特殊的排序步驟。如果先前已實作,可以移除自訂的小端排序,例如 Chromium v4 實作中的排序。
- 可變雜湊長度:必須更新解碼演算法,才能支援
HashList.compressed_additions欄位中可能傳回的各種雜湊長度,而不只是 v4 中使用的四位元組雜湊長度。回應中傳回的雜湊長度,取決於hashLists.list傳回的HashList.metadata.hash_length。或者,所要求雜湊清單的命名方式,也代表清單中預期傳回的雜湊大小。如要進一步瞭解雜湊清單,請參閱「本機資料庫」頁面。
轉換雜湊搜尋
在第 4 版中,使用者會使用 fullHashes.find 方法取得完整雜湊值。在第 5 版中,對應的方法是 the hashes.search 方法。
請對要求進行下列變更:
- 請將程式碼結構化,只傳送長度剛好為 4 個位元組的雜湊前置字串。
- 完全移除 v4
ClientInfo物件。您不必使用專屬欄位提供用戶端 ID,只要使用眾所周知的 User-Agent 標頭即可。雖然我們並未規定在這個標頭中提供用戶端 ID 的格式,但建議您直接加入原始用戶端 ID 和用戶端版本,並以空格字元或斜線字元分隔。 - 移除
client_states欄位。因為不再需要使用。 - 不再需要加入
threat_types和類似欄位。
請對回覆內容進行下列變更:
- 已移除「
minimum_wait_duration」欄位,用戶端隨時可以視需要發出新要求。 - v4
ThreatMatch物件已簡化為FullHash物件。 - 快取已簡化為單一快取時間長度。如要與快取互動,請參閱上述程序。