Method: threatListUpdates.fetch

Pobiera najnowsze aktualizacje listy zagrożeń. Klient może poprosić o aktualizację wielu list jednocześnie.

Żądanie HTTP

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
Pola
client

object (ClientInfo)

Metadane klienta.

listUpdateRequests[]

object (ListUpdateRequest)

Żądana lista zagrożeń została zaktualizowana.

Treść odpowiedzi

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
Pola
listUpdateResponses[]

object (ListUpdateResponse)

Lista zostanie zaktualizowana, o to co klienci proszą. Liczba odpowiedzi może być mniejsza niż liczba żądań wysłanych przez klientów. Dzieje się tak na przykład wtedy, gdy serwer nie aktualizuje konkretnej listy.

minimumWaitDuration

string (Duration format)

Minimalny czas, przez jaki klient musi czekać przed wysłaniem żądania aktualizacji. Jeśli to pole nie jest skonfigurowane, klienty mogą aktualizować swoje dane w dowolnym momencie.

Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „s”. Przykład: "3.5s".

ListUpdateRequest

Jedno żądanie aktualizacji listy.

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

enum (ThreatType)

Rodzaj zagrożenia ze strony wpisów na liście.

platformType

enum (PlatformType)

Typ platformy zagrożonej według pozycji na liście.

threatEntryType

enum (ThreatEntryType)

Typy wpisów na liście.

state

string (bytes format)

Bieżący stan klienta dla żądanej listy (stan zaszyfrowanego klienta otrzymany po ostatniej udanej aktualizacji listy).

Ciąg zakodowany w formacie base64.

constraints

object (Constraints)

Ograniczenia powiązane z tym żądaniem.

Ograniczenia

Ograniczenia tej aktualizacji.

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

integer

Maksymalny rozmiar liczby wpisów. Aktualizacja nie będzie zawierać więcej wpisów niż ta wartość. Powinna to być potęga 2 z zakresu 2**10–2**20. Jeśli wartość wynosi 0, limit rozmiaru aktualizacji nie jest ustawiony.

maxDatabaseEntries

integer

Określa maksymalną liczbę wpisów z określonej listy, które klient może mieć w lokalnej bazie danych. Powinna to być potęga 2 z zakresu 2**10–2**20. Jeśli 0, nie jest ustawiony limit rozmiaru bazy danych.

region

string

prosi o wyświetlenie listy dla konkretnej lokalizacji geograficznej. Jeśli jej nie skonfigurujesz, serwer może wybierać tę wartość na podstawie adresu IP użytkownika. Oczekiwany jest format ISO 3166-1 alfa-2.

supportedCompressions[]

enum (CompressionType)

Typy kompresji obsługiwane przez klienta.

language

string

Służy do wyświetlania prośby o listy dla konkretnego języka. Oczekiwany jest format ISO 639 alfa-2.

deviceLocation

string

Fizyczna lokalizacja klienta wyrażona jako kod regionu w formacie ISO 31166-1 alfa-2.

CompressionType

Sposoby, w jakie można skompresować zestawy wpisów zagrożeń.

Wartości w polu enum
COMPRESSION_TYPE_UNSPECIFIED Nieznany.
RAW Nieprzetworzone, nieskompresowane dane.
RICE Dane zakodowane w formacie Rice-Golomb.

ListUpdateResponse

Aktualizacja pojedynczej listy.

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

enum (ThreatType)

Typ zagrożenia, w przypadku którego zwracane są dane.

threatEntryType

enum (ThreatEntryType)

Format gróźb.

platformType

enum (PlatformType)

Typ platformy, dla której są zwracane dane.

responseType

enum (ResponseType)

Typ odpowiedzi. Może to oznaczać, że po otrzymaniu odpowiedzi klient będzie musiał wykonać określone działanie.

additions[]

object (ThreatEntrySet)

Zbiór wpisów do dodania do listy lokalnych typów zagrożeń. Powtórzenie czynności pozwala na wysłanie kombinacji skompresowanych i nieprzetworzonych danych w jednej odpowiedzi.

removals[]

object (ThreatEntrySet)

Zbiór wpisów do usunięcia z listy lokalnych typów zagrożeń. W praktyce to pole jest puste lub zawiera dokładnie 1 zestaw ThreatEntrySet.

newClientState

string (bytes format)

Nowy stan klienta w formacie zaszyfrowanym. Nieprzezroczyste dla klientów.

Ciąg zakodowany w formacie base64.

checksum

object (Checksum)

Oczekiwany hasz SHA256 stanu klienta; czyli posortowanej listy wszystkich haszów znajdujących się w bazie danych po zastosowaniu dostarczonej aktualizacji. Jeśli stan klienta nie jest zgodny z oczekiwanym, klient musi zignorować tę aktualizację i spróbować ponownie później.

ResponseType

Typ odpowiedzi wysłanej do klienta.

Wartości w polu enum
RESPONSE_TYPE_UNSPECIFIED Nieznany.
PARTIAL_UPDATE Częściowe aktualizacje są stosowane do istniejącej lokalnej bazy danych klienta.
FULL_UPDATE Pełne aktualizacje zastępują całą lokalną bazę danych klienta. Oznacza to, że klient był poważnie nieaktualny lub jest uważany za uszkodzony.

ThreatEntrySet

Zestaw zagrożeń, które powinny zostać dodane do lokalnej bazy danych klienta lub z niej usunięte.

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

enum (CompressionType)

Typ kompresji wpisów w tym zbiorze.

rawHashes

object (RawHashes)

Nieprzetworzone wpisy w formacie SHA256.

rawIndices

object (RawIndices)

Wskaźniki usunięcia nieprzetworzonych danych dla listy lokalnej.

riceHashes

object (RiceDeltaEncoding)

Zakodowane 4-bajtowe prefiksy wpisów w formacie SHA256 za pomocą kodowania Golomb-Rice. Są one konwertowane na format uint32, posortowany w kolejności rosnącej, a następnie zakodowane za pomocą delta i przechowywane jako zakodowane dane.

riceIndices

object (RiceDeltaEncoding)

Zakodowane lokalne, posortowane leksykograficznie indeksy list w formacie Golomb-Rice. Służy do wysyłania skompresowanych indeksów usuwania treści. Indeksy usuwania (uint32) są sortowane w kolejności rosnącej, a następnie zakodowane delta i przechowywane jako zakodowane dane.

RawHashes

Nieskompresowane wpisy o zagrożeniach w formacie skrótu o określonej długości prefiksu. Hasze mogą mieć od 4 do 32 bajtów. Znaczna większość ma 4 bajty, ale niektóre hasze mogą być wydłużane, jeśli kolidują z szyfrowaniem popularnego adresu URL.

Służy do wysyłania wartości ThreatEntrySet do klientów, które nie obsługują kompresji, lub w przypadku wysyłania skrótów innych niż 4-bajtowe do klientów, które obsługują kompresję.

Zapis JSON
{
  "prefixSize": integer,
  "rawHashes": string
}
Pola
prefixSize

integer

Liczba bajtów dla każdego zakodowanego poniżej prefiksu. Pole to może zawierać wartość od 4 (najkrótszy prefiks) do 32 (pełny hasz SHA256).

rawHashes

string (bytes format)

Hasze w formacie binarnym połączone w jeden długi ciąg. Hasze są sortowane w kolejności leksykograficznej. W przypadku użytkowników interfejsu JSON API hasze są zakodowane w formacie base64.

Ciąg zakodowany w formacie base64.

RawIndices

Zestaw nieprzetworzonych indeksów do usunięcia z listy lokalnej.

Zapis JSON
{
  "indices": [
    integer
  ]
}
Pola
indices[]

integer

Indeksy do usunięcia z leksykograficznie posortowanej listy lokalnej.

RiceDeltaEncoding

Dane zakodowane przez Rice-Golomb. Służy do wysyłania skompresowanych 4-bajtowych haszy lub indeksów usuwania skompresowanych.

Zapis JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
Pola
firstValue

string (int64 format)

Przesunięcie pierwszego wpisu w zakodowanych danych lub, jeśli zakodowano tylko jedną liczbę całkowitą, wartość tej pojedynczej liczby całkowitej. Jeśli pole jest puste lub go nie ma, zakładaj zero.

riceParameter

integer

Parametr Golomb-Rice, który ma wartość od 2 do 28. Brak tego pola (czyli 0), jeśli numEntries ma wartość 0.

numEntries

integer

Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona wynosić 0, a pojedyncza wartość zostanie zapisana w polu firstValue.

encodedData

string (bytes format)

Zakodowane delta z kodera Golomb-Rice.

Ciąg zakodowany w formacie base64.

Suma kontrolna

Oczekiwany stan lokalnej bazy danych klienta.

Zapis JSON
{
  "sha256": string
}
Pola
sha256

string (bytes format)

Skrót SHA256 stanu klienta; czyli posortowanej listy wszystkich haszy występujących w bazie danych.

Ciąg zakodowany w formacie base64.