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 de lista solicitadas pelos clientes. O número de respostas pode ser menor que o número de solicitações enviadas pelos clientes. Isso acontece, 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 ser atualizados assim que quiserem.

Uma duração em segundos com até nove dígitos fracionários, terminando em "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 de acordo com as 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 esta 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 conterá 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 de 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 de banco de dados será definido.

region

string

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

supportedCompressions[]

enum (CompressionType)

Os tipos de compactação compatíveis com o cliente.

language

string

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

deviceLocation

string

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

CompressionType

Os modos pelos quais os conjuntos de entradas de ameaças podem ser compactados.

Enums
COMPRESSION_TYPE_UNSPECIFIED Desconhecido.
RAW Dados brutos e não compactados.
RICE Dados codificados de arroz em 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 adicionar à lista de um tipo de ameaça local. 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 As atualizações parciais são aplicadas ao banco de dados local do cliente.
FULL_UPDATE As atualizações completas substituem todo o banco de dados local do cliente. Isso significa que o cliente estava seriamente desatualizado ou acredita-se que ele estivesse corrompido.

ThreatEntrySet

Um conjunto de ameaças que deve ser adicionada ou removida do banco de dados local do 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 nesse conjunto.

rawHashes

object (RawHashes)

Entradas brutas formatadas em 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 formatadas em 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 classificados, 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

Entradas de ameaças não compactadas em 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 ampliados se colidem 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 (menor prefixo) a 32 (hash SHA256 completo).

rawHashes

string (bytes format)

Os hashes, em formato binário, concatenados em uma única 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 classificada lexicograficamente.

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 for codificado, o valor desse número 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 com codificação delta nos dados codificados. Se apenas um número inteiro for 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.