Local List Mode

Quando i client scelgono di utilizzare Navigazione sicura di Google v5 in questa modalità, il comportamento del client è simile all'API Update v4, tranne per l'utilizzo della superficie API migliorata della v5. I client manterranno nel proprio database locale un insieme di elenchi di minacce formattati come prefissi hash SHA256 di espressioni URL di prefisso percorso/suffisso host. Ogni volta che il client vuole controllare un determinato URL, viene eseguito un controllo utilizzando l'elenco locale delle minacce. Se e solo se viene trovata una corrispondenza, il client si connette al server per continuare il controllo.

Come per quanto sopra, il client manterrà anche una cache locale che non deve trovarsi in un archivio permanente.

Procedura di controllo dell'URL dell'elenco delle minacce locali

Questa procedura viene eseguita anche quando il client utilizza la procedura Modalità in tempo reale e restituisce il valore UNSURE.

Questa procedura accetta un singolo URL u e restituisce SAFE o UNSAFE.

  1. Sia expressions un elenco di espressioni di suffisso/prefisso generate dall'URL u.
  2. Sia expressionHashes un elenco in cui gli elementi sono hash SHA256 di ogni espressione in expressions.
  3. Sia expressionHashPrefixes un elenco in cui gli elementi sono i primi 4 byte di ogni hash in expressionHashes.
  4. Per ogni expressionHashPrefix di expressionHashPrefixes:
    1. Cerca expressionHashPrefix nella cache locale.
    2. Se viene trovata la voce memorizzata nella cache:
      1. Determina se l'ora corrente è successiva all'ora di scadenza.
      2. Se è superiore:
        1. Rimuovi la voce memorizzata nella cache trovata dalla cache locale.
        2. Continua con il loop.
      3. Se non è maggiore:
        1. Rimuovere questo particolare expressionHashPrefix da expressionHashPrefixes.
        2. Controlla se l'hash completo corrispondente all'interno di expressionHashes si trova nella voce memorizzata nella cache.
        3. Se trovato, restituisci UNSAFE.
        4. Se non viene trovato, continua con il ciclo.
    3. Se la voce memorizzata nella cache non viene trovata, continua con il ciclo.
  5. Per ogni expressionHashPrefix di expressionHashPrefixes:
    1. Cerca expressionHashPrefix nel database dell'elenco delle minacce locali.
    2. Se expressionHashPrefix non è presente nel database dell'elenco delle minacce locali, rimuovilo da expressionHashPrefixes.
  6. Invia expressionHashPrefixes al server Google Safe Browsing v5 utilizzando RPC SearchHashes o il metodo REST hashes.search. Se si è verificato un errore (inclusi errori di rete, errori HTTP e così via), restituisci SAFE. In caso contrario, la risposta è response ricevuta dal server Safe Browsing, ovvero un elenco di hash completi insieme ad alcune informazioni ausiliarie che identificano la natura della minaccia (ingegneria sociale, malware e così via), nonché il tempo di scadenza della cache expiration.
  7. Per ogni fullHash di response:
    1. Inserisci fullHash nella cache locale, insieme a expiration.
  8. Per ogni fullHash di response:
    1. Sia isFound il risultato della ricerca di fullHash in expressionHashes.
    2. Se isFound è False, continua con il ciclo.
    3. Se isFound è True, restituisce UNSAFE.
  9. Ritorno: SAFE.