Method: threatListUpdates.fetch

Recupera las actualizaciones más recientes de la lista de amenazas. Un cliente puede solicitar actualizaciones para varias listas a la vez.

Solicitud HTTP

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

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
Campos
client

object (ClientInfo)

Los metadatos del cliente.

listUpdateRequests[]

object (ListUpdateRequest)

Las actualizaciones de la lista de amenazas solicitadas.

Cuerpo de la respuesta

Si el proceso es satisfactorio, el cuerpo de la respuesta contiene datos con la siguiente estructura:

Representación JSON
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
Campos
listUpdateResponses[]

object (ListUpdateResponse)

Las actualizaciones de la lista que solicitan los clientes. La cantidad de respuestas aquí puede ser menor que la cantidad de solicitudes que envían los clientes. Este es el caso, por ejemplo, si el servidor no tiene actualizaciones para una lista en particular.

minimumWaitDuration

string (Duration format)

Es la duración mínima que debe esperar el cliente antes de emitir una solicitud de actualización. Si no estableces este campo, los clientes podrán actualizarlo en cuanto lo deseen.

Una duración en segundos con hasta nueve dígitos decimales que terminen en "s". Ejemplo: "3.5s".

ListUpdateRequest

Una sola solicitud de actualización de lista.

Representación JSON
{
  "threatType": enum (ThreatType),
  "platformType": enum (PlatformType),
  "threatEntryType": enum (ThreatEntryType),
  "state": string,
  "constraints": {
    object (Constraints)
  }
}
Campos
threatType

enum (ThreatType)

El tipo de amenaza que representan las entradas presentes en la lista.

platformType

enum (PlatformType)

El tipo de plataforma en riesgo por entradas presentes en la lista.

threatEntryType

enum (ThreatEntryType)

Los tipos de entradas presentes en la lista.

state

string (bytes format)

El estado actual del cliente para la lista solicitada (el estado de cliente encriptado que se recibió de la última actualización exitosa de la lista).

String codificada en base64.

constraints

object (Constraints)

Las restricciones asociadas con esta solicitud.

Restricciones

Las restricciones de esta actualización.

Representación JSON
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
Campos
maxUpdateEntries

integer

El tamaño máximo en cantidad de entradas. La actualización no contendrá más entradas que este valor. Esto debe ser una potencia de 2 entre 2**10 y 2**20. Si es cero, no se establece ningún límite de tamaño de actualizaciones.

maxDatabaseEntries

integer

Establece la cantidad máxima de entradas que el cliente está dispuesto a tener en la base de datos local para la lista especificada. Esto debe ser una potencia de 2 entre 2**10 y 2**20. Si es cero, no se establece ningún límite de tamaño de la base de datos.

region

string

Solicita la lista para una ubicación geográfica específica. Si no se configura, el servidor puede elegir ese valor según la dirección IP del usuario. Espera el formato ISO 3166-1 alfa-2.

supportedCompressions[]

enum (CompressionType)

Los tipos de compresión que admite el cliente.

language

string

Solicita las listas para un idioma específico. Espera el formato ISO 639 alfa-2.

deviceLocation

string

La ubicación física de un cliente, expresada como un código regional ISO 31166-1 alfa-2.

CompressionType

Las formas en que se pueden comprimir los conjuntos de entradas de amenazas

Enumeradores
COMPRESSION_TYPE_UNSPECIFIED Desconocido.
RAW Datos sin procesar, sin comprimir.
RICE Datos codificados en Rice-Golomb.

ListUpdateResponse

Es una actualización de una lista individual.

Representación 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)

El tipo de amenaza para el que se muestran datos.

threatEntryType

enum (ThreatEntryType)

El formato de las amenazas.

platformType

enum (PlatformType)

El tipo de plataforma para el que se muestran los datos.

responseType

enum (ResponseType)

Es el tipo de respuesta. Esto puede indicar que el cliente requiere una acción cuando se recibe la respuesta.

additions[]

object (ThreatEntrySet)

Un conjunto de entradas para agregar a la lista de un tipo de amenaza local. Se repite para permitir que se envíe una combinación de datos comprimidos y sin procesar en una sola respuesta.

removals[]

object (ThreatEntrySet)

Un conjunto de entradas para quitar de la lista de un tipo de amenaza local. En la práctica, este campo está vacío o contiene exactamente un ThreatEntrySet.

newClientState

string (bytes format)

El nuevo estado del cliente, en formato encriptado. Opaco para los clientes.

String codificada en base64.

checksum

object (Checksum)

El hash SHA256 esperado del estado del cliente; es decir, de la lista ordenada de todos los hashes presentes en la base de datos después de aplicar la actualización proporcionada. Si el estado del cliente no coincide con el estado esperado, el cliente debe ignorar esta actualización y volver a intentarlo más tarde.

ResponseType

El tipo de respuesta que se envía al cliente.

Enumeradores
RESPONSE_TYPE_UNSPECIFIED Desconocido.
PARTIAL_UPDATE Las actualizaciones parciales se aplican a la base de datos local existente del cliente.
FULL_UPDATE Las actualizaciones completas reemplazan toda la base de datos local del cliente. Esto significa que el cliente estaba muy desactualizado o que se consideró que estaba dañado.

ThreatEntrySet

Un conjunto de amenazas que se debe agregar o quitar de la base de datos local de un cliente.

Representación JSON
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
Campos
compressionType

enum (CompressionType)

El tipo de compresión para las entradas en este conjunto.

rawHashes

object (RawHashes)

Las entradas con formato SHA256 sin procesar.

rawIndices

object (RawIndices)

Los índices de eliminación sin procesar para una lista local.

riceHashes

object (RiceDeltaEncoding)

Los prefijos de 4 bytes codificados de entradas con formato SHA256 que utilizan una codificación Golomb-Rice. Los hashes se convierten en uint32, se ordenan en orden ascendente, se codifican delta y se almacenan como encodedData.

riceIndices

object (RiceDeltaEncoding)

Los índices de lista locales codificados, ordenados lexicográficamente, mediante una codificación Golomb-Rice. Se usa para enviar índices de eliminación comprimidos. Los índices de eliminación (uint32) se ordenan en sentido ascendente, luego se codifican delta y se almacenan como encodedData.

RawHashes

Las entradas de amenazas sin comprimir en formato hash con una longitud de prefijo particular. Los hash pueden tener un tamaño de entre 4 y 32 bytes. La mayoría son de 4 bytes, pero algunos hash se alargan si colisionan con el hash de una URL popular.

Se utiliza para enviar ThreatEntrySet a los clientes que no admiten la compresión o cuando se envían hashes que no son de 4 bytes a los clientes que sí admiten la compresión.

Representación JSON
{
  "prefixSize": integer,
  "rawHashes": string
}
Campos
prefixSize

integer

El número de bytes para cada prefijo codificado a continuación. Este campo puede ser de 4 (prefijo más corto) a 32 (hash SHA256 completo).

rawHashes

string (bytes format)

Los hashes, en formato binario, concatenados en una cadena larga. Los hash se ordenan en orden lexicográfico. Para los usuarios de la API de JSON, los hash están codificados en base64.

String codificada en base64.

RawIndices

Un conjunto de índices sin procesar que se quitarán de una lista local.

Representación JSON
{
  "indices": [
    integer
  ]
}
Campos
indices[]

integer

Los índices que se quitarán de una lista local ordenada de forma lexicográfica.

RiceDeltaEncoding

Los datos codificados en Rice-Golomb. Se usa para enviar hashes de 4 bytes comprimidos o índices de eliminación comprimidos.

Representación JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
Campos
firstValue

string (int64 format)

El desplazamiento de la primera entrada en los datos codificados o, si solo se codificó un número entero, el valor de ese número entero. Si el campo está vacío o no se encuentra, supón que es cero.

riceParameter

integer

El parámetro Golomb-Rice, que es un número entre 2 y 28. Falta este campo (es decir, cero) si numEntries es cero.

numEntries

integer

El número de entradas que están codificadas delta en los datos codificados. Si solo se codificó un número entero, este será cero y el valor único se almacenará en firstValue.

encodedData

string (bytes format)

Los deltas codificados que se codifican con el codificador Golomb-Rice.

String codificada en base64.

Suma de comprobación

El estado esperado de la base de datos local de un cliente.

Representación JSON
{
  "sha256": string
}
Campos
sha256

string (bytes format)

El hash SHA256 del estado del cliente; es decir, de la lista ordenada de todos los hashes presentes en la base de datos.

String codificada en base64.