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.
- Sia
expressionsun elenco di espressioni di suffisso/prefisso generate dall'URLu. - Sia
expressionHashesun elenco in cui gli elementi sono hash SHA256 di ogni espressione inexpressions. - Sia
expressionHashPrefixesun elenco in cui gli elementi sono i primi 4 byte di ogni hash inexpressionHashes. - Per ogni
expressionHashPrefixdiexpressionHashPrefixes:- Cerca
expressionHashPrefixnella cache locale. - Se viene trovata la voce memorizzata nella cache:
- Determina se l'ora corrente è successiva all'ora di scadenza.
- Se è superiore:
- Rimuovi la voce memorizzata nella cache trovata dalla cache locale.
- Continua con il loop.
- Se non è maggiore:
- Rimuovere questo particolare
expressionHashPrefixdaexpressionHashPrefixes. - Controlla se l'hash completo corrispondente all'interno di
expressionHashessi trova nella voce memorizzata nella cache. - Se trovato, restituisci
UNSAFE. - Se non viene trovato, continua con il ciclo.
- Rimuovere questo particolare
- Se la voce memorizzata nella cache non viene trovata, continua con il ciclo.
- Cerca
- Per ogni
expressionHashPrefixdiexpressionHashPrefixes:- Cerca
expressionHashPrefixnel database dell'elenco delle minacce locali. - Se
expressionHashPrefixnon è presente nel database dell'elenco delle minacce locali, rimuovilo daexpressionHashPrefixes.
- Cerca
- Invia
expressionHashPrefixesal 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), restituisciSAFE. In caso contrario, la risposta èresponsericevuta 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 cacheexpiration. - Per ogni
fullHashdiresponse:- Inserisci
fullHashnella cache locale, insieme aexpiration.
- Inserisci
- Per ogni
fullHashdiresponse:- Sia
isFoundil risultato della ricerca difullHashinexpressionHashes. - Se
isFoundè False, continua con il ciclo. - Se
isFoundè True, restituisceUNSAFE.
- Sia
- Ritorno:
SAFE.