Method: threatListUpdates.fetch

Récupère les mises à jour les plus récentes de la liste des menaces. Un client peut demander la mise à jour de plusieurs listes à la fois.

Requête HTTP

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

L'URL utilise la syntaxe de transcodage gRPC.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation JSON
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
Champs
client

object (ClientInfo)

Métadonnées du client.

listUpdateRequests[]

object (ListUpdateRequest)

Mises à jour de la liste des menaces demandées.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient des données présentant la structure suivante :

Représentation JSON
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
Champs
listUpdateResponses[]

object (ListUpdateResponse)

Mises à jour de liste demandées par les clients. Le nombre de réponses ici peut être inférieur au nombre de demandes envoyées par les clients. C'est le cas, par exemple, lorsque le serveur ne dispose d'aucune mise à jour pour une liste spécifique.

minimumWaitDuration

string (Duration format)

Durée minimale d'attente du client avant d'émettre une requête de mise à jour. Si ce champ n'est pas défini, les clients peuvent être mis à jour dès qu'ils le souhaitent.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

ListUpdateRequest

Une seule requête de mise à jour de liste.

Représentation JSON
{
  "threatType": enum (ThreatType),
  "platformType": enum (PlatformType),
  "threatEntryType": enum (ThreatEntryType),
  "state": string,
  "constraints": {
    object (Constraints)
  }
}
Champs
threatType

enum (ThreatType)

Type de menace posée par les entrées présentes dans la liste.

platformType

enum (PlatformType)

Type de plate-forme à risque par les entrées figurant dans la liste.

threatEntryType

enum (ThreatEntryType)

Types d'entrées présentes dans la liste.

state

string (bytes format)

État actuel du client pour la liste demandée (état du client chiffré reçu lors de la dernière mise à jour réussie de la liste).

Chaîne encodée en base64.

constraints

object (Constraints)

Contraintes associées à cette requête.

Contraintes

Contraintes de cette mise à jour.

Représentation JSON
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
Champs
maxUpdateEntries

integer

Taille maximale en nombre d'entrées. La mise à jour ne contiendra pas plus d'entrées que cette valeur. Il doit s'agir d'une puissance de 2 comprise entre 2**10 et 2**20. Si la valeur est zéro, aucune limite de taille de mise à jour n'est définie.

maxDatabaseEntries

integer

Définit le nombre maximal d'entrées que le client est prêt à avoir dans la base de données locale pour la liste spécifiée. Il doit s'agir d'une puissance de 2 comprise entre 2**10 et 2**20. Si la valeur est zéro, aucune limite de taille de base de données n'est définie.

region

string

Demande la liste pour un emplacement géographique spécifique. Si cette valeur n'est pas définie, le serveur peut sélectionner cette valeur à partir de l'adresse IP de l'utilisateur. Attendre le format ISO 3166-1 alpha-2.

supportedCompressions[]

enum (CompressionType)

Types de compression acceptés par le client.

language

string

Demande les listes pour une langue spécifique. Attendre le format ISO 639 alpha-2.

deviceLocation

string

Emplacement physique d'un client, exprimé sous la forme d'un code régional ISO 31166-1 alpha-2.

CompressionType

Méthodes de compression des ensembles d'entrées de menaces

Enums
COMPRESSION_TYPE_UNSPECIFIED Inconnu.
RAW Données brutes non compressées.
RICE Données encodées en boule de riz.

ListUpdateResponse

Modification d'une liste individuelle.

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

enum (ThreatType)

Type de menace pour lequel des données sont renvoyées.

threatEntryType

enum (ThreatEntryType)

Format des menaces.

platformType

enum (PlatformType)

Type de plate-forme pour lequel des données sont renvoyées.

responseType

enum (ResponseType)

Type de réponse. Cela peut indiquer qu'une action est requise de la part du client lorsque la réponse est reçue.

additions[]

object (ThreatEntrySet)

Ensemble d'entrées à ajouter à la liste d'un type de menace local. Répété pour permettre l'envoi d'une combinaison de données compressées et brutes dans une seule réponse.

removals[]

object (ThreatEntrySet)

Ensemble d'entrées à supprimer de la liste d'un type de menace local. En pratique, ce champ est vide ou ne contient qu'un seul ThreatEntrySet.

newClientState

string (bytes format)

Nouvel état du client, au format chiffré. Opaque pour les clients.

Chaîne encodée en base64.

checksum

object (Checksum)

Hachage SHA256 attendu de l'état du client c'est-à-dire de la liste triée de tous les hachages présents dans la base de données après l'application de la mise à jour fournie. Si l'état du client ne correspond pas à l'état attendu, le client doit ignorer cette mise à jour et réessayer plus tard.

ResponseType

Type de réponse envoyée au client.

Enums
RESPONSE_TYPE_UNSPECIFIED Inconnu.
PARTIAL_UPDATE Les mises à jour partielles sont appliquées à la base de données locale existante du client.
FULL_UPDATE Les mises à jour complètes remplacent l'intégralité de la base de données locale du client. Cela signifie que soit le client était vraiment obsolète, soit il est considéré comme corrompu.

ThreatEntrySet

Ensemble de menaces qui doivent être ajoutées à la base de données locale d'un client ou supprimées de celle-ci.

Représentation JSON
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
Champs
compressionType

enum (CompressionType)

Type de compression pour les entrées de cet ensemble.

rawHashes

object (RawHashes)

Entrées brutes au format SHA256.

rawIndices

object (RawIndices)

Indices bruts des suppressions pour une liste locale.

riceHashes

object (RiceDeltaEncoding)

Préfixes de 4 octets encodés des entrées au format SHA256, à l'aide d'un encodage Golomb-Rice. Les hachages sont convertis au format uint32, triés par ordre croissant, puis encodés en delta et stockés sous la forme EncodingData.

riceIndices

object (RiceDeltaEncoding)

Index locaux encodés, triés par ordre lexicographique, et utilisant un encodage Golomb-Rice. Utilisé pour envoyer des index de suppression compressés. Les index de suppression (uint32) sont triés par ordre croissant, puis encodés en delta et stockés sous forme de EncodingData.

RawHashes

Entrées de menace non compressées sous forme de hachage d'une longueur de préfixe particulière. La taille des hachages peut être comprise entre 4 et 32 octets. La plupart du temps, la taille correspond à 4 octets, mais certains hachages sont rallongés s'ils entrent en conflit avec le hachage d'une URL courante.

Utilisé pour envoyer ThreatEntrySet à des clients qui n'acceptent pas la compression ou lors de l'envoi de hachages de moins de 4 octets à des clients compatibles avec la compression.

Représentation JSON
{
  "prefixSize": integer,
  "rawHashes": string
}
Champs
prefixSize

integer

Nombre d'octets pour chaque préfixe encodé ci-dessous. La valeur de ce champ doit être comprise entre 4 (préfixe le plus court) et 32 (hachage SHA256 complet).

rawHashes

string (bytes format)

Les hachages, au format binaire, concaténés en une longue chaîne. Les hachages sont triés par ordre lexicographique. Pour les utilisateurs de l'API JSON, les hachages sont encodés en base64.

Chaîne encodée en base64.

RawIndices

Ensemble d'indices bruts à supprimer d'une liste locale.

Représentation JSON
{
  "indices": [
    integer
  ]
}
Champs
indices[]

integer

Index à retirer d'une liste locale triée de façon lexicographique.

RiceDeltaEncoding

Les données encodées en glaçage de riz. Utilisé pour envoyer des hachages de 4 octets compressés ou des index de suppression compressés.

Représentation JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
Champs
firstValue

string (int64 format)

Décalage de la première entrée dans les données encodées ou, si un seul entier a été encodé, valeur de cet entier unique. Si le champ est vide ou manquant, supposons que la valeur est zéro.

riceParameter

integer

Le paramètre Golomb-Rice, qui est un nombre compris entre 2 et 28. Ce champ est manquant (c'est-à-dire zéro) si numEntries est égal à zéro.

numEntries

integer

Nombre d'entrées encodées delta dans les données encodées. Si un seul entier a été encodé, la valeur sera zéro et la valeur unique sera stockée dans firstValue.

encodedData

string (bytes format)

Deltas encodés à l'aide du codeur Golomb-Rice.

Chaîne encodée en base64.

Total

État attendu de la base de données locale d'un client.

Représentation JSON
{
  "sha256": string
}
Champs
sha256

string (bytes format)

Hachage SHA256 de l'état du client. c'est-à-dire de la liste triée de tous les hachages présents dans la base de données.

Chaîne encodée en base64.