Local List Mode

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.

  1. Seja expressions uma lista de expressões de sufixo/prefixo geradas pelo URL u.
  2. Seja expressionHashes uma lista em que os elementos são hashes SHA256 de cada expressão em expressions.
  3. Seja expressionHashPrefixes uma lista em que os elementos são os primeiros quatro bytes de cada hash em expressionHashes.
  4. Para cada expressionHashPrefix de expressionHashPrefixes:
    1. Pesquisar expressionHashPrefix no cache local.
    2. Se a entrada em cache for encontrada:
      1. Determine se o horário atual é maior que o prazo de validade.
      2. Se for maior:
        1. Remova a entrada em cache encontrada do cache local.
        2. Continue com o loop.
      3. Se não for maior:
        1. Remova esse expressionHashPrefix específico de expressionHashPrefixes.
        2. Verifique se o hash completo correspondente em expressionHashes é encontrado na entrada em cache.
        3. Se encontrado, retorne UNSAFE.
        4. Se não for encontrado, continue com o loop.
    3. Se a entrada em cache não for encontrada, continue com o loop.
  5. Para cada expressionHashPrefix de expressionHashPrefixes:
    1. Procure expressionHashPrefix no banco de dados local de listas de ameaças.
    2. Se o expressionHashPrefix não for encontrado no banco de dados local da lista de ameaças, remova-o de expressionHashPrefixes.
  6. Envie expressionHashPrefixes ao 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.), retorne SAFE. Caso contrário, deixe a resposta ser o response recebido 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 cache expiration.
  7. Para cada fullHash de response:
    1. Insira fullHash no cache local, junto com expiration.
  8. Para cada fullHash de response:
    1. Seja isFound o resultado de encontrar fullHash em expressionHashes.
    2. Se isFound for "False", continue com o loop.
    3. Se isFound for verdadeiro, retorne UNSAFE.
  9. Retorne o SAFE.