Lorsque les clients choisissent d'utiliser Google Safe Browsing v5 dans ce mode, le comportement du client est semblable à celui de l'API Update v4, mais avec la surface d'API améliorée de la version 5. Les clients conserveront dans leur base de données locale un ensemble de listes de menaces mises en forme en tant que préfixes de hachage SHA256 d'expressions d'URL de suffixe d'hôte/préfixe de chemin d'accès. Chaque fois que le client souhaite vérifier une URL spécifique, une vérification est effectuée à l'aide de la liste locale des menaces. Le client ne se connecte au serveur pour poursuivre la vérification que s'il y a correspondance.
Comme ci-dessus, le client conservera également un cache local qui n'a pas besoin d'être dans un stockage persistant.
Procédure de vérification des URL de la liste des menaces locales
Cette procédure est également exécutée lorsque le client utilise la procédure Mode temps réel et qu'il renvoie la valeur UNSURE.
Cette procédure prend une seule URL u et renvoie SAFE ou UNSAFE.
- Soit
expressionsune liste d'expressions de suffixe/préfixe générées par l'URLu. - Soit
expressionHashesune liste dont les éléments sont les hachages SHA256 de chaque expression dansexpressions. - Soit
expressionHashPrefixesune liste dont les éléments sont les quatre premiers octets de chaque hachage dansexpressionHashes. - Pour chaque
expressionHashPrefixdeexpressionHashPrefixes:- Recherchez
expressionHashPrefixdans le cache local. - Si l'entrée en cache est trouvée :
- Déterminez si l'heure actuelle est postérieure à son heure d'expiration.
- Si elle est supérieure :
- Supprime l'entrée mise en cache trouvée du cache local.
- Continuez avec la boucle.
- Si elle n'est pas supérieure :
- Supprimez ce
expressionHashPrefixdeexpressionHashPrefixes. - Vérifiez si le hachage complet correspondant dans
expressionHashesse trouve dans l'entrée mise en cache. - Si elle est trouvée, renvoie
UNSAFE. - Si vous ne le trouvez pas, continuez la boucle.
- Supprimez ce
- Si l'entrée mise en cache est introuvable, poursuivez la boucle.
- Recherchez
- Pour chaque
expressionHashPrefixdeexpressionHashPrefixes:- Recherchez
expressionHashPrefixdans la base de données locale de la liste des menaces. - Si
expressionHashPrefixest introuvable dans la base de données locale de la liste des menaces, supprimez-le deexpressionHashPrefixes.
- Recherchez
- Envoyez
expressionHashPrefixesau serveur Google Navigation sécurisée v5 à l'aide de RPC SearchHashes ou de la méthode REST hashes.search. Si une erreur s'est produite (y compris des erreurs réseau, des erreurs HTTP, etc.), renvoyezSAFE. Sinon, la réponse est leresponsereçu du serveur SB, qui est une liste de hachages complets avec des informations auxiliaires identifiant la nature de la menace (ingénierie sociale, logiciel malveillant, etc.), ainsi que le délai d'expiration du cacheexpiration. - Pour chaque
fullHashderesponse:- Insérez
fullHashdans le cache local, ainsi queexpiration.
- Insérez
- Pour chaque
fullHashderesponse:- Soit
isFoundle résultat de la recherche defullHashdansexpressionHashes. - Si
isFoundest défini sur "False", la boucle continue. - Si
isFoundest "true", renvoieUNSAFE.
- Soit
- Renvoyez
SAFE.