如果用戶端選擇在無儲存空間的即時模式中使用 Google 安全瀏覽 v5,就不必維護任何持續性本機資料庫。不過,用戶端仍應維護本機快取。這類本機快取不必位於永久儲存空間,且在記憶體壓力過大時可能會清除。
每當用戶端想檢查特定網址時,一律會連線至伺服器執行檢查。這個模式與 v4 Lookup API 用戶端可能採用的模式類似。
相較於即時模式,這個模式可能會使用更多網路頻寬,但如果用戶端不方便維護持續的本機狀態,這個模式可能更適合。
不使用本機資料庫的即時網址檢查程序
這項程序會採用單一網址 u,並傳回 SAFE 或 UNSAFE。
- 假設
expressions是網址u產生的後置字串/前置字串運算式清單。 - 假設
expressionHashes是清單,其中的元素是expressions中每個運算式的 SHA256 雜湊。 - 假設
expressionHashPrefixes是清單,其中的元素是expressionHashes中每個雜湊的前 4 個位元組。 - 針對每個
expressionHashPrefix的expressionHashPrefixes:- 在本地快取中查找
expressionHashPrefix。 - 如果找到快取項目:
- 判斷目前時間是否晚於到期時間。
- 如果大於:
- 從本機快取中移除找到的快取項目。
- 繼續使用迴路。
- 如果不是較大的值:
- 從
expressionHashPrefixes移除這個特定expressionHashPrefix。 - 檢查快取項目中是否含有
expressionHashes內的相應完整雜湊。 - 如果找到,則傳回
UNSAFE。 - 如果找不到,請繼續執行迴圈。
- 從
- 如果找不到快取項目,請繼續執行迴圈。
- 在本地快取中查找
- 使用 RPC SearchHashes 或 REST 方法 hashes.search,將
expressionHashPrefixes傳送至 Google 安全瀏覽 v5 伺服器。如果發生錯誤 (包括網路錯誤、HTTP 錯誤等),請傳回SAFE。否則,請將回應設為從 SB 伺服器收到的response,其中包含完整雜湊清單,以及識別威脅性質 (社交工程、惡意軟體等) 的輔助資訊,還有快取到期時間expiration。 - 針對每個
fullHash的response:- 將
fullHash連同expiration插入本機快取。
- 將
- 針對每個
fullHash的response:- 假設
isFound是在expressionHashes中尋找fullHash的結果。 - 如果
isFound為 False,請繼續執行迴圈。 - 如果
isFound為 True,則傳回UNSAFE。
- 假設
- 回程日期:
SAFE。
與即時模式相同,這項程序不會明確指定如何將雜湊前置字串傳送至伺服器。舉例來說,用戶端可以透過單一要求傳送所有 expressionHashPrefixes,也可以透過個別要求將 expressionHashPrefixes 中的每個前置字元傳送至伺服器 (可能並行處理)。只要單一要求中傳送的雜湊前置字元數量不超過 30 個,用戶端也可以在 expressionHashPrefixes 中傳送不相關或隨機產生的雜湊前置字元。