Method: threatListUpdates.fetch

Ruft die neuesten Aktualisierungen der Bedrohungsliste ab. Ein Client kann gleichzeitig Aktualisierungen für mehrere Listen anfordern.

HTTP-Anfrage

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

Die URL verwendet die Syntax der gRPC-Transcodierung.

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

JSON-Darstellung
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
Felder
client

object (ClientInfo)

Die Metadaten des Clients.

listUpdateRequests[]

object (ListUpdateRequest)

Die angeforderte Bedrohungsliste wird aktualisiert.

Antworttext

Wenn der Vorgang erfolgreich ist, enthält der Antworttext Daten mit folgender Struktur:

JSON-Darstellung
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
Felder
listUpdateResponses[]

object (ListUpdateResponse)

Die von den Clients angeforderten Listenaktualisierungen. Die Anzahl der Antworten hier ist möglicherweise geringer als die Anzahl der Anfragen, die von Clients gesendet wurden. Dies ist beispielsweise der Fall, wenn der Server für eine bestimmte Liste keine Aktualisierungen hat.

minimumWaitDuration

string (Duration format)

Die Mindestdauer, die der Client warten muss, bevor er eine Aktualisierungsanfrage sendet. Wenn dieses Feld nicht festgelegt ist, können die Clients schnellstmöglich aktualisiert werden.

Dauer in Sekunden mit bis zu neun Nachkommastellen und einem 's' an letzter Stelle. Beispiel: "3.5s".

ListUpdateRequest

Eine einzelne Anfrage zur Listenaktualisierung.

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

enum (ThreatType)

Die Art der Bedrohung durch die Einträge in der Liste.

platformType

enum (PlatformType)

Der Plattformtyp, der gemäß den in der Liste vorhandenen Einträgen gefährdet ist.

threatEntryType

enum (ThreatEntryType)

Die in der Liste vorhandenen Eintragstypen.

state

string (bytes format)

Der aktuelle Status des Clients für die angeforderte Liste (der verschlüsselte Clientstatus, der nach der letzten erfolgreichen Listenaktualisierung empfangen wurde).

Ein base64-codierter String.

constraints

object (Constraints)

Die mit dieser Anfrage verknüpften Einschränkungen.

Einschränkungen

Die Einschränkungen für dieses Update.

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

integer

Die maximale Größe der Anzahl von Einträgen. Die Aktualisierung enthält nicht mehr Einträge als dieser Wert. Der Wert sollte eine Potenz von 2 zwischen 2**10 und 2**20 sein. Wenn null, wird keine Größenbeschränkung für Updates festgelegt.

maxDatabaseEntries

integer

Legt die maximale Anzahl von Einträgen fest, die der Client in der lokalen Datenbank für die angegebene Liste aufnehmen möchte. Der Wert sollte eine Potenz von 2 zwischen 2**10 und 2**20 sein. Wenn null, ist kein Limit für die Datenbankgröße festgelegt.

region

string

Fordert die Liste für einen bestimmten geografischen Standort an. Wenn die Richtlinie nicht konfiguriert ist, kann der Server diesen Wert anhand der IP-Adresse des Nutzers auswählen. Erwartungsgemäß ISO 3166-1 alpha-2-Format.

supportedCompressions[]

enum (CompressionType)

Die vom Client unterstützten Komprimierungstypen.

language

string

Fordert die Listen für eine bestimmte Sprache an. Erwartet wird das Format ISO 639 alpha-2.

deviceLocation

string

Der physische Standort eines Clients, ausgedrückt als Regionscode gemäß ISO 31166-1 alpha-2.

CompressionType

Wie Bedrohungseintragssätze komprimiert werden können.

Enums
COMPRESSION_TYPE_UNSPECIFIED Unbekannt.
RAW Unkomprimierte Rohdaten.
RICE Rice-Golomb-codierte Daten.

ListUpdateResponse

Die Aktualisierung einer einzelnen Liste.

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

enum (ThreatType)

Der Bedrohungstyp, für den Daten zurückgegeben werden.

threatEntryType

enum (ThreatEntryType)

Das Format der Bedrohungen.

platformType

enum (PlatformType)

Der Plattformtyp, für den Daten zurückgegeben werden.

responseType

enum (ResponseType)

Der Typ der Antwort. Dies kann darauf hindeuten, dass beim Empfang der Antwort eine Aktion für den Client erforderlich ist.

additions[]

object (ThreatEntrySet)

Eine Reihe von Einträgen, die der Liste eines lokalen Bedrohungstyps hinzugefügt werden sollen. Wird wiederholt, damit eine Kombination aus komprimierten und Rohdaten in einer einzigen Antwort gesendet werden kann.

removals[]

object (ThreatEntrySet)

Eine Reihe von Einträgen, die aus der Liste eines lokalen Bedrohungstyps entfernt werden sollen. In der Praxis ist dieses Feld leer oder enthält genau ein ThreatEntrySet.

newClientState

string (bytes format)

Der neue Clientstatus im verschlüsselten Format. Für Kunden intransparent.

Ein base64-codierter String.

checksum

object (Checksum)

Der erwartete SHA256-Hash des Clientstatus, d. h. die sortierte Liste aller Hashes, die nach dem bereitgestellten Update in der Datenbank vorhanden sind. Wenn der Clientstatus nicht mit dem erwarteten Status übereinstimmt, muss der Client diese Aktualisierung ignorieren und es später noch einmal versuchen.

ResponseType

Die Art der an den Client gesendeten Antwort.

Enums
RESPONSE_TYPE_UNSPECIFIED Unbekannt.
PARTIAL_UPDATE Teilaktualisierungen werden auf die vorhandene lokale Datenbank des Clients angewendet.
FULL_UPDATE Vollständige Updates ersetzen die gesamte lokale Datenbank des Clients. Das bedeutet, dass der Client entweder erheblich veraltet war oder mutmaßlich beschädigt ist.

ThreatEntrySet

Eine Reihe von Bedrohungen, die der lokalen Datenbank eines Clients hinzugefügt oder daraus entfernt werden sollten.

JSON-Darstellung
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
Felder
compressionType

enum (CompressionType)

Der Komprimierungstyp für die Einträge in diesem Satz.

rawHashes

object (RawHashes)

Die unbearbeiteten Einträge im SHA256-Format.

rawIndices

object (RawIndices)

Die Indizes der Rohentfernung für eine lokale Liste.

riceHashes

object (RiceDeltaEncoding)

Die codierten 4-Byte-Präfixe von SHA256-formatierten Einträgen unter Verwendung einer Golomb-Rice-Codierung. Die Hashes werden in uint32 konvertiert, in aufsteigender Reihenfolge sortiert, dann deltacodiert und als encodedData gespeichert.

riceIndices

object (RiceDeltaEncoding)

Die codierten lokalen, lexikografisch sortierten Listenindexe unter Verwendung einer Golomb-Rice-Codierung. Wird zum Senden komprimierter Entfernungsindexe verwendet. Die Entfernungsindizes (uint32) werden in aufsteigender Reihenfolge sortiert, dann deltacodiert und als encodedData gespeichert.

RawHashes

Die unkomprimierten Bedrohungseinträge im Hash-Format mit einer bestimmten Präfixlänge. Hashes können zwischen 4 und 32 Byte groß sein. Die große Mehrheit beträgt 4 Byte. Einige Hashes werden jedoch verlängert, wenn sie mit dem Hash einer beliebten URL in Konflikt stehen.

Wird zum Senden von ThreatEntrySet an Clients verwendet, die keine Komprimierung unterstützen, oder zum Senden von Nicht-4-Byte-Hashes an Clients, die Komprimierung unterstützen.

JSON-Darstellung
{
  "prefixSize": integer,
  "rawHashes": string
}
Felder
prefixSize

integer

Die Anzahl der Byte für jedes unten codierte Präfix. Der Wert in diesem Feld kann zwischen 4 (kürzestes Präfix) und 32 (vollständiger SHA256-Hash) liegen.

rawHashes

string (bytes format)

Die Hashes im Binärformat, die zu einem langen String verkettet sind. Hashes werden in lexikografischer Reihenfolge sortiert. Für Nutzer der JSON API sind Hashes base64-codiert.

Ein base64-codierter String.

RawIndices

Eine Reihe von Rohindexen, die aus einer lokalen Liste entfernt werden sollen.

JSON-Darstellung
{
  "indices": [
    integer
  ]
}
Felder
indices[]

integer

Indexe, die aus einer lexikografisch sortierten lokalen Liste entfernt werden sollen

RiceDeltaEncoding

Die Rice-Golomb-codierten Daten. Wird zum Senden komprimierter 4-Byte-Hashes oder komprimierter Entfernungsindexe verwendet.

JSON-Darstellung
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
Felder
firstValue

string (int64 format)

Der Offset des ersten Eintrags in den codierten Daten oder, wenn nur eine einzelne Ganzzahl codiert wurde, der Wert dieser einzelnen Ganzzahl. Wenn das Feld leer ist oder fehlt, gehen Sie von null aus.

riceParameter

integer

Der Golomb-Reice-Parameter, der eine Zahl zwischen 2 und 28 ist. Dieses Feld fehlt (d. h. null), wenn numEntries null ist.

numEntries

integer

Die Anzahl der Einträge, die in den codierten Daten deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dies null und der einzelne Wert wird in firstValue gespeichert.

encodedData

string (bytes format)

Die codierten Deltas, die mit dem Golomb-Rice-Coder codiert werden.

Ein base64-codierter String.

Prüfsumme

Der erwartete Status der lokalen Datenbank eines Clients.

JSON-Darstellung
{
  "sha256": string
}
Felder
sha256

string (bytes format)

Der SHA256-Hash des Clientstatus, d. h. der sortierten Liste aller in der Datenbank vorhandenen Hashes.

Ein base64-codierter String.