Quando os clientes escolhem usar o Google Safe Browsing v5 nesse modo, o comportamento do cliente é semelhante à API Update v4, exceto pelo uso da superfície de API aprimorada da v5. Os clientes vão manter no banco de dados local um conjunto de listas de ameaças formatadas como prefixos de hash SHA256 de expressões de URL de sufixo de host/prefixo de caminho. Sempre que o cliente quiser verificar um URL específico, uma verificação será realizada usando a lista de ameaças local. Se e somente se houver uma correspondência, o cliente se conectará ao servidor para continuar a verificação.
Assim como acima, o cliente também vai manter um cache local que não precisa estar no armazenamento permanente.
O procedimento de verificação de URL da lista de ameaças local
Esse procedimento também é realizado quando o cliente usa o procedimento do modo em tempo real e retorna o valor UNSURE.
Esse procedimento usa um único URL u e retorna SAFE ou UNSAFE.
- Seja
expressionsuma lista de expressões de sufixo/prefixo geradas pelo URLu. - Seja
expressionHashesuma lista em que os elementos são hashes SHA256 de cada expressão emexpressions. - Seja
expressionHashPrefixesuma lista em que os elementos são os primeiros quatro bytes de cada hash emexpressionHashes. - Para cada
expressionHashPrefixdeexpressionHashPrefixes:- Pesquisar
expressionHashPrefixno cache local. - Se a entrada em cache for encontrada:
- Determine se o horário atual é maior que o prazo de validade.
- Se for maior:
- Remova a entrada em cache encontrada do cache local.
- Continue com o loop.
- Se não for maior:
- Remova esse
expressionHashPrefixespecífico deexpressionHashPrefixes. - Verifique se o hash completo correspondente em
expressionHashesé encontrado na entrada em cache. - Se encontrado, retorne
UNSAFE. - Se não for encontrado, continue com o loop.
- Remova esse
- Se a entrada em cache não for encontrada, continue com o loop.
- Pesquisar
- Para cada
expressionHashPrefixdeexpressionHashPrefixes:- Procure
expressionHashPrefixno banco de dados local de listas de ameaças. - Se o
expressionHashPrefixnão for encontrado no banco de dados local da lista de ameaças, remova-o deexpressionHashPrefixes.
- Procure
- Envie
expressionHashPrefixesao servidor da Navegação segura v5 do Google usando RPC SearchHashes ou o método REST hashes.search. Se ocorrer um erro (incluindo erros de rede, erros HTTP etc.), retorneSAFE. Caso contrário, deixe a resposta ser oresponserecebido do servidor SB, que é uma lista de hashes completos com algumas informações auxiliares que identificam a natureza da ameaça (engenharia social, malware etc.), bem como o tempo de expiração do cacheexpiration. - Para cada
fullHashderesponse:- Insira
fullHashno cache local, junto comexpiration.
- Insira
- Para cada
fullHashderesponse:- Seja
isFoundo resultado de encontrarfullHashemexpressionHashes. - Se
isFoundfor "False", continue com o loop. - Se
isFoundfor verdadeiro, retorneUNSAFE.
- Seja
- Retorne o
SAFE.