Method: threatListUpdates.fetch

Recupera gli aggiornamenti più recenti dell'elenco di 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 è 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)

Gli aggiornamenti dell'elenco richiesti dai clienti. Il numero di risposte qui potrebbe essere inferiore al numero di richieste inviate dai client. Questo è il caso, 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 una richiesta di aggiornamento. Se questo campo non viene impostato, i clienti possono eseguire l'aggiornamento all'occorrenza.

Durata in secondi con un massimo di nove cifre frazionarie e termina con "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 per le 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.

Vincoli

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 termini di 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 di aggiornamento.

maxDatabaseEntries

integer

Imposta il numero massimo di voci che il client vuole 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

Consente di richiedere l'elenco per una posizione geografica specifica. Se non viene configurato, il server potrebbe scegliere quel valore in base all'indirizzo IP dell'utente. Prevede il formato ISO 3166-1 alpha-2.

supportedCompressions[]

enum (CompressionType)

I tipi di compressione supportati dal client.

language

string

Consente di richiedere gli elenchi per una lingua specifica. Prevede il formato ISO 639 alpha-2.

deviceLocation

string

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

CompressionType

I modi in cui è possibile comprimere gli insiemi di voci di minacce.

Enum
COMPRESSION_TYPE_UNSPECIFIED Sconosciuto.
RAW Dati non elaborati e non compressi.
RICE Dati codificati in Rice-Golomb.

ListUpdateResponse

Un aggiornamento a 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 cui 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ò potrebbe indicare che il client deve eseguire un'azione quando riceve la risposta.

additions[]

object (ThreatEntrySet)

Un insieme di voci da aggiungere all'elenco di un tipo di minaccia locale. Ripetito per consentire l'invio di una combinazione di dati compressi e non elaborati in una singola 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 del client, in formato criptato. Opaca per i clienti.

Una stringa con codifica base64.

checksum

object (Checksum)

L'hash SHA256 previsto dello stato del client. cioè 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 in un secondo momento.

ResponseType

Il tipo di risposta inviata 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 client era gravemente obsoleto o che si ritiene che sia danneggiato.

ThreatEntrySet

Insieme di minacce che devono essere aggiunte o rimosse 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 in questo set.

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 delta e archiviati come codedData.

riceIndices

object (RiceDeltaEncoding)

Gli indici di elenco locali codificati, ordinati in ordine didattico, utilizzando una codifica Golomb-Rice. Utilizzato per inviare indici di rimozione compressi. Gli indici di rimozione (uint32) vengono ordinati in ordine crescente, quindi sono codificati delta e memorizzati come codedData.

RawHashes

Le voci di minaccia non compresse in formato hash con una lunghezza di prefisso specifica. Le dimensioni degli hash possono variare da 4 a 32 byte. In gran parte sono 4 byte, ma alcuni hash vengono allungati se entrano in conflitto con l'hash di un URL popolare.

Utilizzato per l'invio di ThreatEntrySet ai client che non supportano la compressione o per l'invio di hash non a 4 byte ai 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 qualsiasi numero compreso tra 4 (prefisso più breve) e 32 (hash SHA256 completo).

rawHashes

string (bytes format)

Gli hash, in formato binario, sono concatenati in una lunga stringa. Gli hash vengono 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 classificato lessicograficamente.

RiceDeltaEncoding

I dati codificati di Rice-Golomb. Utilizzato per inviare hash a 4 byte compressi o 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, supponiamo che il valore sia 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 codificate delta nei dati codificati. Se è stato codificato un solo numero intero, il valore sarà zero e il singolo valore verrà memorizzato in firstValue.

encodedData

string (bytes format)

I delta codificati che vengono codificati utilizzando 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; cioè dell'elenco ordinato di tutti gli hash presenti nel database.

Una stringa con codifica base64.