- Solicitação HTTP
- Parâmetros de consulta
- Corpo da solicitação
- Corpo da resposta
- FullHash
- FullHashDetail
- ThreatAttribute
Pesquise hashes completos que correspondam aos prefixos especificados.
Este é um método personalizado, conforme definido em https://google.aip.dev/136. O método personalizado se refere a este método com um nome personalizado na nomenclatura geral de desenvolvimento de API do Google. Ele não se refere ao uso de um método HTTP personalizado.
Solicitação HTTP
GET https://safebrowsing.googleapis.com/v5/hashes:search
O URL usa a sintaxe de transcodificação gRPC.
Parâmetros de consulta
| Parâmetros | |
|---|---|
| hashPrefixes[] | 
 Obrigatório. Os prefixos de hash a serem procurados. Os clientes NÃO PODEM enviar mais de 1.000 prefixos de hash. No entanto, seguindo o procedimento de processamento de URL, os clientes NÃO precisam enviar mais de 30 prefixos de hash. Atualmente, cada prefixo de hash precisa ter exatamente 4 bytes. Isso PODE ser relaxado no futuro. Uma string codificada em base64. | 
Corpo da solicitação
O corpo da solicitação precisa estar vazio.
Corpo da resposta
A resposta retornada após a pesquisa de hashes de ameaças.
Se nada for encontrado, o servidor vai retornar um status OK (código de status HTTP 200) com o campo fullHashes vazio, em vez de retornar um status NOT_FOUND (código de status HTTP 404).
Novidades na V5: há uma separação entre FullHash e FullHashDetail. Quando um hash representa um site com várias ameaças (por exemplo, MALWARE e SOCIAL_ENGINEERING), não é necessário enviar o hash completo duas vezes, como na V4. Além disso, a duração do cache foi simplificada em um único campo cacheDuration.
Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:
| Representação JSON | 
|---|
| {
  "fullHashes": [
    {
      object ( | 
| Campos | |
|---|---|
| fullHashes[] | 
 Lista não ordenada. A lista não ordenada de hashes completos encontrados. | 
| cacheDuration | 
 A duração do cache do lado do cliente. O cliente PRECISA adicionar essa duração ao horário atual para determinar o tempo de expiração. O tempo de expiração se aplica a todos os prefixos de hash consultados pelo cliente na solicitação, independentemente de quantos hashes completos são retornados na resposta. Mesmo que o servidor não retorne hashes completos para um prefixo de hash específico, esse fato também PRECISA ser armazenado em cache pelo cliente. Se e somente se o campo  Importante: o cliente NÃO PODE presumir que o servidor vai retornar a mesma duração de cache para todas as respostas. O servidor PODE escolher durações de cache diferentes para respostas diferentes, dependendo da situação. Duração em segundos com até nove dígitos fracionários, terminando em " | 
FullHash
O hash completo identificado com uma ou mais correspondências.
| Representação JSON | 
|---|
| {
  "fullHash": string,
  "fullHashDetails": [
    {
      object ( | 
| Campos | |
|---|---|
| fullHash | 
 O hash completo correspondente. Este é o hash SHA256. O comprimento será exatamente de 32 bytes. Uma string codificada em base64. | 
| fullHashDetails[] | 
 Lista não ordenada. Um campo repetido que identifica os detalhes relevantes para esse hash completo. | 
FullHashDetail
Detalhes sobre um hash completo correspondente.
Observação importante sobre a compatibilidade com versões futuras: novos tipos e atributos de ameaça podem ser adicionados pelo servidor a qualquer momento. Essas adições são consideradas mudanças de versão menores. A política do Google é não expor números de versão secundária nas APIs (consulte https://cloud.google.com/apis/design/versioning para conferir a política de controle de versões). Portanto, os clientes precisam estar preparados para receber mensagens FullHashDetail com valores de enumeração ThreatType ou ThreatAttribute que são considerados inválidos pelo cliente. Portanto, é responsabilidade do cliente verificar a validade de todos os valores de tipo enumerado ThreatType e ThreatAttribute. Se algum valor for considerado inválido, o cliente PRECISA desconsiderar toda a mensagem FullHashDetail.
| Representação JSON | 
|---|
| { "threatType": enum ( | 
| Campos | |
|---|---|
| threatType | 
 O tipo de ameaça. Esse campo nunca vai ficar vazio. | 
| attributes[] | 
 Lista não ordenada. Outros atributos sobre esses hashes completos. Pode estar vazio. | 
ThreatAttribute
Atributos de ameaças. Esses atributos podem conferir um significado adicional a uma ameaça específica, mas não afetam o tipo de ameaça. Por exemplo, um atributo pode especificar uma confiança menor, enquanto outro pode especificar uma confiança maior. Mais atributos poderão ser adicionados no futuro.
| Enums | |
|---|---|
| THREAT_ATTRIBUTE_UNSPECIFIED | Atributo desconhecido. Se isso for retornado pelo servidor, o cliente vai ignorar completamente o FullHashDetailque o contém. | 
| CANARY | Indica que o threatType não deve ser usado para aplicação. | 
| FRAME_ONLY | Indica que o threatType só pode ser usado para aplicação em frames. | 
