Google 安全瀏覽 v5 相較於 v4 的重大改進之一 (具體來說,是 v4 Update API) 是資料的新鮮度和涵蓋率。由於保護機制高度仰賴由用戶端維護的本機資料庫,因此本機資料庫更新的延遲和大小是導致遺漏保護機制的主因。在 v4 中,一般用戶端需要 20 到 50 分鐘才能取得最新的威脅清單。不幸的是,網路釣魚攻擊傳播速度很快:截至 2021 年,60% 的攻擊網站會在 10 分鐘內下線。我們的分析顯示,約 25% 至 30% 的網路釣魚防護功能未啟用,是因為這類資料過時。此外,部分裝置無法管理 Google 安全瀏覽威脅清單,而這份清單會隨著時間持續增加。
如果您目前使用 第 4 版 Update API,可以從第 4 版順利遷移至第 5 版,無須重設或清除本機資料庫。本節將說明如何執行這項操作。
轉換清單更新
與 V4 不同,在 V5 中,清單只會以名稱識別,這樣一來,當多個 v5 清單共用相同的威脅類型時,就能提供彈性。平台類型和威脅項目類型已在 v5 中移除。
在 v4 中,使用者會使用 threatListUpdates.fetch 方法下載清單。在 v5 中,您可以切換至 hashLists.batchGet 方法。
請對要求進行下列變更:
- 一併移除 v4
ClientInfo
物件。請改用眾所皆知的 User-Agent 標頭,而非使用專屬欄位提供用戶端的 ID。雖然這個標頭並未規定用來提供用戶端 ID 的格式,但建議您只提供原始用戶端 ID 和用戶端版本,並以空格或斜線字元分隔。 - 針對每個 v4
ListUpdateRequest
物件: * 在上述表格中查詢對應的 v5 清單名稱,並在 v5 要求中提供該名稱。- 移除
threat_entry_type
或platform_type
等不必要的欄位。 - v4 中的
state
欄位與 v5versions
欄位直接相容。在 v5 中,只要使用versions
欄位,即可傳送相同的位元組字串,而無須使用 v4 中的state
欄位。 - 針對 v4 限制,v5 會使用名為
SizeConstraints
的簡化版本。應捨棄region
等其他欄位。
- 移除
回應應進行下列變更:
- v4 enum
ResponseType
已簡單取代為名為partial_update
的布林值欄位。 minimum_wait_duration
欄位現在可以為零或省略。如果是,系統會要求用戶端立即提出另一項要求。只有在用戶端在SizeConstraints
中指定的更新大小上限小於資料庫大小上限時,才會發生這種情況。- 需要調整 32 位元整數的 Rice 解碼演算法。差異在於編碼資料採用不同的字節順序。在 v4 和 v5 中,32 位元雜湊前置碼會依字典順序排序。但在 v4 中,這些前置字會在排序時視為小端排序,而在 v5 中,這些前置字會在排序時視為大端排序。也就是說,由於字典排序與大端序數字排序相同,因此用戶端不需要進行任何排序。如要查看 Chromium 在第 4 版中實作的這類例子,請按這裡。這類排序作業可以移除。
- 您也需要為其他雜湊長度實作 Rice 解碼演算法。
轉換雜湊搜尋
在 v4 中,使用者會使用 fullHashes.find 方法取得完整雜湊。在 v5 中,等同的方法是 hashes.search 方法。
請對要求進行下列變更:
- 請將程式碼結構化,只傳送長度為 4 位元組的雜湊字首。
- 一併移除 v4
ClientInfo
物件。請改用眾所皆知的 User-Agent 標頭,而非使用專屬欄位提供用戶端的 ID。雖然這個標頭並未規定用來提供用戶端 ID 的格式,但建議您直接加入原始用戶端 ID 和用戶端版本,並以空格或斜線字元分隔。 - 移除
client_states
欄位。因為不再需要使用。 - 您不再需要加入
threat_types
和類似欄位。
回應應進行下列變更:
- 已移除
minimum_wait_duration
欄位,用戶端隨時可以視需要發出新要求。 - v4
ThreatMatch
物件已簡化為FullHash
物件。 - 快取功能已簡化為單一快取時間長度。請參閱上述與快取互動程序。