- Solicitação HTTP
- Parâmetros de consulta
- Corpo da solicitação
- Corpo da resposta
- FullHash
- FullHashDetail
- ThreatAttribute
Pesquisa hashes completos que correspondem aos prefixos especificados.
Esse é um método personalizado, conforme definido em https://google.aip.dev/136. O método personalizado se refere a um método com um nome personalizado na nomenclatura geral de desenvolvimento de APIs do Google, não 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 pesquisados. 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 DEVEM precisar enviar mais de 30 prefixos de hash. No momento, cada prefixo de hash precisa ter exatamente 4 bytes. Isso PODE ser flexibilizado 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 um status NOT_FOUND (código de status HTTP 404).
Novidades na V5: há uma separação entre FullHash e FullHashDetail. No caso em que 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 horário 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 determinado prefixo de hash, 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 compatibilidade futura: novos tipos e atributos de ameaças podem ser adicionados pelo servidor a qualquer momento. Essas adições são consideradas mudanças de versão secundárias. A política do Google não permite expor números de versões secundárias em 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 que contenham valores de enumeração ThreatType ou ThreatAttribute considerados inválidos pelo cliente. Portanto, é responsabilidade do cliente verificar a validade de todos os valores de enumeração ThreatType e ThreatAttribute. Se algum valor for considerado inválido, o cliente PRECISA ignorar 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 dela. Por exemplo, um atributo pode especificar uma confiança menor, enquanto outro pode especificar uma confiança maior. Mais atributos podem ser adicionados no futuro.
| Tipos enumerados | |
|---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
Atributo desconhecido. Se isso for retornado pelo servidor, o cliente vai ignorar o FullHashDetail envolvente. |
CANARY |
Indica que o threatType não deve ser usado para aplicação. |
FRAME_ONLY |
Indica que o threatType só deve ser usado para aplicação em frames. |