No Storage Real Time Mode

如果用戶端選擇在無儲存空間的即時模式中使用 Google 安全瀏覽 v5,就不必維護任何持續性本機資料庫。不過,用戶端仍應維護本機快取。這類本機快取不必位於永久儲存空間,且在記憶體壓力過大時可能會清除。

每當用戶端想檢查特定網址時,一律會連線至伺服器執行檢查。這個模式與 v4 Lookup API 用戶端可能採用的模式類似。

相較於即時模式,這個模式可能會使用更多網路頻寬,但如果用戶端不方便維護持續的本機狀態,這個模式可能更適合。

不使用本機資料庫的即時網址檢查程序

這項程序會採用單一網址 u,並傳回 SAFEUNSAFE

  1. 假設 expressions 是網址 u 產生的後置字串/前置字串運算式清單。
  2. 假設 expressionHashes 是清單,其中的元素是 expressions 中每個運算式的 SHA256 雜湊。
  3. 假設 expressionHashPrefixes 是清單,其中的元素是 expressionHashes 中每個雜湊的前 4 個位元組。
  4. 針對每個 expressionHashPrefixexpressionHashPrefixes
    1. 在本地快取中查找 expressionHashPrefix
    2. 如果找到快取項目:
      1. 判斷目前時間是否晚於到期時間。
      2. 如果大於:
        1. 從本機快取中移除找到的快取項目。
        2. 繼續使用迴路。
      3. 如果不是較大的值:
        1. expressionHashPrefixes 移除這個特定 expressionHashPrefix
        2. 檢查快取項目中是否含有 expressionHashes 內的相應完整雜湊。
        3. 如果找到,則傳回 UNSAFE
        4. 如果找不到,請繼續執行迴圈。
    3. 如果找不到快取項目,請繼續執行迴圈。
  5. 使用 RPC SearchHashes 或 REST 方法 hashes.search,將 expressionHashPrefixes 傳送至 Google 安全瀏覽 v5 伺服器。如果發生錯誤 (包括網路錯誤、HTTP 錯誤等),請傳回 SAFE。否則,請將回應設為從 SB 伺服器收到的 response,其中包含完整雜湊清單,以及識別威脅性質 (社交工程、惡意軟體等) 的輔助資訊,還有快取到期時間 expiration
  6. 針對每個 fullHashresponse
    1. fullHash 連同 expiration 插入本機快取。
  7. 針對每個 fullHashresponse
    1. 假設 isFound 是在 expressionHashes 中尋找 fullHash 的結果。
    2. 如果 isFound 為 False,請繼續執行迴圈。
    3. 如果 isFound 為 True,則傳回 UNSAFE
  8. 回程日期:SAFE

即時模式相同,這項程序不會明確指定如何將雜湊前置字串傳送至伺服器。舉例來說,用戶端可以透過單一要求傳送所有 expressionHashPrefixes,也可以透過個別要求將 expressionHashPrefixes 中的每個前置字元傳送至伺服器 (可能並行處理)。只要單一要求中傳送的雜湊前置字元數量不超過 30 個,用戶端也可以在 expressionHashPrefixes 中傳送不相關或隨機產生的雜湊前置字元。