Method: threatListUpdates.fetch

Recupera gli aggiornamenti più recenti dell'elenco delle minacce. Un cliente può richiedere aggiornamenti per più elenchi contemporaneamente.

Richiesta HTTP

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

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
Campi
client

object (ClientInfo)

I metadati del client.

listUpdateRequests[]

object (ListUpdateRequest)

L'elenco delle minacce richiesto viene aggiornato.

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
Campi
listUpdateResponses[]

object (ListUpdateResponse)

L'elenco viene aggiornato richiesto dai client. Il numero di risposte qui potrebbe essere inferiore al numero di richieste inviate dai clienti. ad esempio se il server non ha aggiornamenti per un determinato elenco.

minimumWaitDuration

string (Duration format)

La durata minima che il client deve attendere prima di inviare qualsiasi richiesta di aggiornamento. Se questo campo non è impostato, i client possono eseguire l'aggiornamento appena vogliono.

Una durata in secondi con un massimo di nove cifre frazionarie, terminata da "s". Esempio: "3.5s".

ListUpdateRequest

Una singola richiesta di aggiornamento dell'elenco.

Rappresentazione JSON
{
  "threatType": enum (ThreatType),
  "platformType": enum (PlatformType),
  "threatEntryType": enum (ThreatEntryType),
  "state": string,
  "constraints": {
    object (Constraints)
  }
}
Campi
threatType

enum (ThreatType)

Il tipo di minaccia rappresentata dalle voci presenti nell'elenco.

platformType

enum (PlatformType)

Il tipo di piattaforma a rischio in base alle voci presenti nell'elenco.

threatEntryType

enum (ThreatEntryType)

I tipi di voci presenti nell'elenco.

state

string (bytes format)

Lo stato attuale del client per l'elenco richiesto (lo stato del client criptato ricevuto dall'ultimo aggiornamento dell'elenco riuscito).

Una stringa con codifica Base64.

constraints

object (Constraints)

I vincoli associati a questa richiesta.

Limitazioni

I vincoli per questo aggiornamento.

Rappresentazione JSON
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
Campi
maxUpdateEntries

integer

La dimensione massima in numero di voci. L'aggiornamento non conterrà più voci di questo valore. Deve essere una potenza di 2 compresa tra 2**10 e 2**20. Se il valore è zero, non viene impostato alcun limite per le dimensioni degli aggiornamenti.

maxDatabaseEntries

integer

Imposta il numero massimo di voci che il client è disposto ad avere nel database locale per l'elenco specificato. Deve essere una potenza di 2 compresa tra 2**10 e 2**20. Se il valore è zero, non viene impostato alcun limite di dimensione del database.

region

string

Richiede l'elenco di una località geografica specifica. Se non viene configurato, il server può scegliere questo valore in base all'indirizzo IP dell'utente. È previsto il formato ISO 3166-1 alpha-2.

supportedCompressions[]

enum (CompressionType)

I tipi di compressione supportati dal client.

language

string

Richiede gli elenchi per una lingua specifica. È previsto il formato ISO 639 alpha-2.

deviceLocation

string

La località fisica di un cliente, espressa come codice regione ISO 31166-1 alpha-2.

CompressionType

Modalità di compressione degli insiemi di voci di minacce.

Enum
COMPRESSION_TYPE_UNSPECIFIED Sconosciuto.
RAW Dati non elaborati e non compressi.
RICE Dati codificati di Riso-Golomb.

ListUpdateResponse

Aggiornamento di un singolo elenco.

Rappresentazione JSON
{
  "threatType": enum (ThreatType),
  "threatEntryType": enum (ThreatEntryType),
  "platformType": enum (PlatformType),
  "responseType": enum (ResponseType),
  "additions": [
    {
      object (ThreatEntrySet)
    }
  ],
  "removals": [
    {
      object (ThreatEntrySet)
    }
  ],
  "newClientState": string,
  "checksum": {
    object (Checksum)
  }
}
Campi
threatType

enum (ThreatType)

Il tipo di minaccia per il quale vengono restituiti i dati.

threatEntryType

enum (ThreatEntryType)

Il formato delle minacce.

platformType

enum (PlatformType)

Il tipo di piattaforma per cui vengono restituiti i dati.

responseType

enum (ResponseType)

Il tipo di risposta. Ciò può indicare che il client richiede un'azione alla ricezione della risposta.

additions[]

object (ThreatEntrySet)

Un insieme di voci da aggiungere all'elenco di un tipo di minaccia locale. Ripetuto per consentire l'invio di una combinazione di dati compressi e dati non elaborati in un'unica risposta.

removals[]

object (ThreatEntrySet)

Un insieme di voci da rimuovere dall'elenco di un tipo di minaccia locale. In pratica, questo campo è vuoto o contiene esattamente un ThreatEntrySet.

newClientState

string (bytes format)

Il nuovo stato client in formato criptato. Opaca per i clienti.

Una stringa con codifica Base64.

checksum

object (Checksum)

L'hash SHA256 previsto dello stato del client, ovvero dell'elenco ordinato di tutti gli hash presenti nel database dopo l'applicazione dell'aggiornamento fornito. Se lo stato del client non corrisponde a quello previsto, il client deve ignorare questo aggiornamento e riprovare più tardi.

ResponseType

Il tipo di risposta inviato al client.

Enum
RESPONSE_TYPE_UNSPECIFIED Sconosciuto.
PARTIAL_UPDATE Gli aggiornamenti parziali vengono applicati al database locale esistente del client.
FULL_UPDATE Gli aggiornamenti completi sostituiscono l'intero database locale del client. Ciò significa che il cliente era seriamente obsoleto oppure che si ritiene sia corrotto.

ThreatEntrySet

Un insieme di minacce che deve essere aggiunto o rimosso dal database locale di un client.

Rappresentazione JSON
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
Campi
compressionType

enum (CompressionType)

Il tipo di compressione per le voci di questo insieme.

rawHashes

object (RawHashes)

Le voci non elaborate in formato SHA256.

rawIndices

object (RawIndices)

Gli indici di rimozione non elaborati per un elenco locale.

riceHashes

object (RiceDeltaEncoding)

I prefissi a 4 byte codificati delle voci in formato SHA256, utilizzando una codifica Golomb-Rice. Gli hash vengono convertiti in uint32, ordinati in ordine crescente, quindi codificati con delta e memorizzati come codedData.

riceIndices

object (RiceDeltaEncoding)

Gli indici dell'elenco locale codificati in ordine lessicografico, utilizzando una codifica Golomb-Rice. Utilizzato per l'invio di indici di rimozione compressi. Gli indici di rimozione (uint32) vengono ordinati in ordine crescente, quindi sono codificati con delta e vengono memorizzati come codedData.

RawHashes

Le voci delle minacce non compresse in formato hash con prefisso di lunghezza specifica. Gli hash possono avere una dimensione compresa tra 4 e 32 byte. La maggioranza è costituita da 4 byte, ma alcuni hash vengono allungati se si scontrano con l'hash di un URL popolare.

Utilizzato per inviare ThreatEntrySet ai client che non supportano la compressione o per inviare hash non di 4 byte a client che supportano la compressione.

Rappresentazione JSON
{
  "prefixSize": integer,
  "rawHashes": string
}
Campi
prefixSize

integer

Il numero di byte per ogni prefisso codificato di seguito. Questo campo può essere compreso tra 4 (prefisso più breve) e 32 (hash SHA256 completo).

rawHashes

string (bytes format)

Gli hash, in formato binario, concatenati in un'unica lunga stringa. Gli hash sono ordinati in ordine lessicografico. Per gli utenti dell'API JSON, gli hash sono codificati in base64.

Una stringa con codifica Base64.

RawIndices

Un insieme di indici non elaborati da rimuovere da un elenco locale.

Rappresentazione JSON
{
  "indices": [
    integer
  ]
}
Campi
indices[]

integer

Gli indici da rimuovere da un elenco locale in ordine lessicografico.

RiceDeltaEncoding

I dati codificati di Rice-Golomb. Utilizzato per l'invio di hash a 4 byte compressi o di indici di rimozione compressi.

Rappresentazione JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
Campi
firstValue

string (int64 format)

L'offset della prima voce nei dati codificati o, se è stato codificato un solo numero intero, il valore di quel singolo numero intero. Se il campo è vuoto o mancante, considera il valore zero.

riceParameter

integer

Il parametro Golomb-Rice, che è un numero compreso tra 2 e 28. Questo campo non è presente (ossia zero) se numEntries è zero.

numEntries

integer

Il numero di voci con codifica delta nei dati codificati. Se è stato codificato un solo numero intero, il valore sarà zero e il singolo valore verrà archiviato in firstValue.

encodedData

string (bytes format)

I delta codificati che sono codificati mediante il programmatore Golomb-Rice.

Una stringa con codifica Base64.

Checksum

Lo stato previsto del database locale di un client.

Rappresentazione JSON
{
  "sha256": string
}
Campi
sha256

string (bytes format)

L'hash SHA256 dello stato del client, ovvero dell'elenco ordinato di tutti gli hash presenti nel database.

Una stringa con codifica Base64.