Method: threatListUpdates.fetch

Busca as atualizações mais recentes da lista de ameaças. Um cliente pode solicitar atualizações para várias listas ao mesmo tempo.

Solicitação HTTP

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch

O URL usa a sintaxe de transcodificação gRPC.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
Campos
client

object (ClientInfo)

Os metadados do cliente.

listUpdateRequests[]

object (ListUpdateRequest)

A lista de ameaças solicitada é atualizada.

Corpo da resposta

Se bem-sucedido, o corpo da resposta exibirá os dados com a seguinte estrutura:

Representação JSON
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
Campos
listUpdateResponses[]

object (ListUpdateResponse)

Atualizações da lista solicitadas pelos clientes. O número de respostas aqui pode ser menor que o número de solicitações enviadas pelos clientes. Esse é o caso, por exemplo, quando o servidor não tem atualizações para determinada lista.

minimumWaitDuration

string (Duration format)

A duração mínima que o cliente precisa esperar antes de emitir qualquer solicitação de atualização. Se este campo não for definido, os clientes poderão atualizar assim que quiserem.

Uma duração em segundos com até nove dígitos fracionários, encerrada por "s". Exemplo: "3.5s".

ListUpdateRequest

Uma única solicitação de atualização de lista.

Representação JSON
{
  "threatType": enum (ThreatType),
  "platformType": enum (PlatformType),
  "threatEntryType": enum (ThreatEntryType),
  "state": string,
  "constraints": {
    object (Constraints)
  }
}
Campos
threatType

enum (ThreatType)

O tipo de ameaça representado pelas entradas presentes na lista.

platformType

enum (PlatformType)

O tipo de plataforma em risco pelas entradas presentes na lista.

threatEntryType

enum (ThreatEntryType)

Os tipos de entradas presentes na lista.

state

string (bytes format)

O estado atual do cliente para a lista solicitada (o estado criptografado do cliente recebido na última atualização bem-sucedida da lista).

Uma string codificada em base64.

constraints

object (Constraints)

As restrições associadas a essa solicitação.

Restrições

As restrições para esta atualização.

Representação JSON
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
Campos
maxUpdateEntries

integer

O tamanho máximo em número de entradas. A atualização não terá mais entradas do que esse valor. Deve ser uma potência de 2 entre 2**10 e 2**20. Se for zero, nenhum limite de tamanho da atualização será definido.

maxDatabaseEntries

integer

Define o número máximo de entradas que o cliente está disposto a ter no banco de dados local para a lista especificada. Deve ser uma potência de 2 entre 2**10 e 2**20. Se for zero, nenhum limite de tamanho do banco de dados será definido.

region

string

Solicita a lista para uma localização geográfica específica. Se ele não for definido, o servidor poderá escolher esse valor com base no endereço IP do usuário. Espera-se no formato ISO 3166-1 alfa-2.

supportedCompressions[]

enum (CompressionType)

Os tipos de compactação aceitos pelo cliente.

language

string

Solicita as listas para um idioma específico. Espera-se no formato ISO 639 alfa-2.

deviceLocation

string

O local físico de um cliente, expresso como um código de região ISO 31166-1 alfa-2.

CompressionType

Como os conjuntos de entradas de ameaças podem ser compactados.

Enums
COMPRESSION_TYPE_UNSPECIFIED Desconhecido.
RAW Dados brutos e descompactados
RICE Dados codificados em Rice-Golomb.

ListUpdateResponse

Atualização de uma lista individual.

Representação JSON
{
  "threatType": enum (ThreatType),
  "threatEntryType": enum (ThreatEntryType),
  "platformType": enum (PlatformType),
  "responseType": enum (ResponseType),
  "additions": [
    {
      object (ThreatEntrySet)
    }
  ],
  "removals": [
    {
      object (ThreatEntrySet)
    }
  ],
  "newClientState": string,
  "checksum": {
    object (Checksum)
  }
}
Campos
threatType

enum (ThreatType)

O tipo de ameaça para o qual os dados são retornados.

threatEntryType

enum (ThreatEntryType)

O formato das ameaças.

platformType

enum (PlatformType)

O tipo de plataforma para o qual os dados são retornados.

responseType

enum (ResponseType)

O tipo de resposta. Isso pode indicar que o cliente precisa realizar uma ação quando a resposta é recebida.

additions[]

object (ThreatEntrySet)

Um conjunto de entradas a serem adicionadas à lista de um tipo de ameaça local. Ele é repetido para permitir que uma combinação de dados compactados e brutos seja enviada em uma única resposta.

removals[]

object (ThreatEntrySet)

Um conjunto de entradas a serem removidas da lista de um tipo de ameaça local. Na prática, esse campo está vazio ou contém exatamente um ThreatEntrySet.

newClientState

string (bytes format)

O novo estado do cliente, em formato criptografado. Opaco para os clientes.

Uma string codificada em base64.

checksum

object (Checksum)

O hash SHA256 esperado do estado do cliente, ou seja, da lista classificada de todos os hashes presentes no banco de dados após a atualização fornecida. Se o estado do cliente não corresponder ao estado esperado, o cliente deverá ignorar essa atualização e tentar novamente mais tarde.

ResponseType

O tipo de resposta enviada ao cliente.

Enums
RESPONSE_TYPE_UNSPECIFIED Desconhecido.
PARTIAL_UPDATE Atualizações parciais são aplicadas ao banco de dados local atual do cliente.
FULL_UPDATE As atualizações completas substituem todo o banco de dados local do cliente. Isso significa que o cliente estava muito desatualizado ou acredita-se que ele estivesse corrompido.

ThreatEntrySet

Um conjunto de ameaças que precisam ser adicionadas ou removidas do banco de dados local de um cliente.

Representação JSON
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
Campos
compressionType

enum (CompressionType)

O tipo de compactação para as entradas neste conjunto.

rawHashes

object (RawHashes)

As entradas brutas no formato SHA256.

rawIndices

object (RawIndices)

Os índices brutos de remoção para uma lista local.

riceHashes

object (RiceDeltaEncoding)

Os prefixos de 4 bytes codificados das entradas no formato SHA256, usando uma codificação Golomb-Rice. Os hashes são convertidos em uint32, classificados em ordem crescente e, em seguida, codificados em delta e armazenados comoencodedData.

riceIndices

object (RiceDeltaEncoding)

Os índices de lista locais codificados lexicograficamente, usando uma codificação Golomb-Rice. Usado para enviar índices de remoção compactados. Os índices de remoção (uint32) são classificados em ordem crescente e, em seguida, codificados em delta e armazenados comoencodedData.

RawHashes

As entradas de ameaça não compactadas no formato hash com um tamanho de prefixo específico. Os hashes podem ter de 4 a 32 bytes. A maioria deles tem 4 bytes, mas alguns hashes são maiores se colidirem com o hash de um URL conhecido.

Usado para enviar ThreatEntrySet a clientes que não oferecem suporte à compactação ou ao enviar hashes que não são de 4 bytes a clientes compatíveis.

Representação JSON
{
  "prefixSize": integer,
  "rawHashes": string
}
Campos
prefixSize

integer

O número de bytes de cada prefixo codificado abaixo. Esse campo pode ser de 4 (prefixo mais curto) a 32 (hash SHA256 completo).

rawHashes

string (bytes format)

Os hashes, em formato binário, concatenados em uma string longa. Os hashes são classificados em ordem lexicográfica. Para usuários da API JSON, os hashes são codificados em base64.

Uma string codificada em base64.

RawIndices

Um conjunto de índices brutos a serem removidos de uma lista local.

Representação JSON
{
  "indices": [
    integer
  ]
}
Campos
indices[]

integer

Os índices a serem removidos de uma lista local lexicograficamente classificada.

RiceDeltaEncoding

Os dados codificados em Rice-Golomb. Usado para enviar hashes de 4 bytes compactados ou índices de remoção compactados.

Representação JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
Campos
firstValue

string (int64 format)

O deslocamento da primeira entrada nos dados codificados ou, se apenas um número inteiro tiver sido codificado, o valor desse único inteiro. Se o campo estiver vazio ou ausente, considere zero.

riceParameter

integer

O parâmetro Golomb-Rice, que é um número entre 2 e 28. Este campo estará ausente (ou seja, zero) se numEntries for zero.

numEntries

integer

O número de entradas codificadas em delta nos dados codificados. Se apenas um número inteiro tiver sido codificado, esse valor será zero e o valor único será armazenado em firstValue.

encodedData

string (bytes format)

Os deltas codificados que são codificados usando o codificador Golomb-Rice.

Uma string codificada em base64.

Soma de verificação

O estado esperado do banco de dados local de um cliente.

Representação JSON
{
  "sha256": string
}
Campos
sha256

string (bytes format)

O hash SHA256 do estado do cliente, ou seja, da lista classificada de todos os hashes presentes no banco de dados.

Uma string codificada em base64.