Method: threatListUpdates.fetch

Busca as atualizações mais recentes da lista de ameaças. Um cliente pode solicitar atualizações para várias listas de uma só vez.

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)

As atualizações da lista de ameaças solicitadas.

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)

As 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. Isso acontece, por exemplo, quando o servidor não tem atualizações para uma lista específica.

minimumWaitDuration

string (Duration format)

O tempo mínimo que o cliente deve aguardar antes de emitir qualquer solicitação de atualização. Se esse campo não for definido, os clientes poderão fazer a atualização assim que quiserem.

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 representada pelas entradas presentes na lista.

platformType

enum (PlatformType)

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

threatEntryType

enum (ThreatEntryType)

Os tipos de entradas presentes na lista.

state

string (bytes format)

O estado atual do cliente da lista solicitada, ou seja, 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 conterá mais entradas do que esse valor. Essa potência 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. Essa potência deve ser uma potência de 2, entre 2**10 e 2**20. Se for zero, nenhum limite de tamanho para o banco de dados será definido.

region

string

Solicita a lista de 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 o 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 o formato ISO 639 alfa-2.

deviceLocation

string

A localização física de um cliente, expressa como um código regional ISO 31166-1 alfa-2.

CompressionType

As maneiras como os conjuntos de entradas de ameaças podem ser compactados.

Enums
COMPRESSION_TYPE_UNSPECIFIED Desconhecido.
RAW Dados brutos e descompactados.
RICE dados codificados por 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 que 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. 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, este campo está vazio ou contém exatamente um ThreatEntrySet.

newClientState

string (bytes format)

O novo estado do cliente, no formato criptografado. Opaca 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 aplicação da 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 atual do cliente.
FULL_UPDATE Atualizações completas substituem todo o banco de dados local do cliente. Isso significa que o cliente estava seriamente desatualizado ou se acreditava que ele estava corrompido.

ThreatEntrySet

Um conjunto de ameaças que devem 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 das entradas neste conjunto.

rawHashes

object (RawHashes)

Entradas brutas formatadas em SHA256.

rawIndices

object (RawIndices)

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

riceHashes

object (RiceDeltaEncoding)

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

riceIndices

object (RiceDeltaEncoding)

Í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, depois são codificados para delta e armazenados comoencodedData.

RawHashes

As 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 tem 4 bytes, mas alguns hashes são ampliados se entrarem em conflito 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 sejam de quatro bytes para clientes compatíveis com compactação.

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

integer

O número de bytes de cada prefixo codificado abaixo. Esse campo pode estar em qualquer lugar 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 classificada lexicograficamente.

RiceDeltaEncoding

Os dados codificados por Rice-Golomb. Usado para enviar hashes compactados de 4 bytes 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 foi codificado, o valor desse único 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 está 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 for codificado, ele será zero e o valor único será armazenado em firstValue.

encodedData

string (bytes format)

Os deltas 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.