Method: threatListUpdates.fetch

Pobiera najnowsze aktualizacje listy zagrożeń. Klient może zażądać aktualizacji 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ń zostanie 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)

Aktualizacje listy żądane przez klientów. Liczba odpowiedzi może być mniejsza od liczby żądań wysłanych przez klientów. Dzieje się tak na przykład wtedy, gdy na serwerze nie ma aktualizacji konkretnej listy.

minimumWaitDuration

string (Duration format)

Minimalny czas oczekiwania klienta przed wysłaniem żądania aktualizacji. Jeśli to pole nie jest skonfigurowane, klienci mogą aktualizować dane w dowolnym momencie.

Czas trwania w sekundach zawierający maksymalnie 9 cyfr po przecinku zakończony znakiem „s”. Przykład: "3.5s".

ListUpdateRequest

Pojedyncza prośba o aktualizację listy.

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

enum (ThreatType)

Rodzaj zagrożenia, jakie stwarzają wpisy na liście.

platformType

enum (PlatformType)

Rodzaj platformy zagrożonej przez wpisy na liście.

threatEntryType

enum (ThreatEntryType)

Typy wpisów na liście.

state

string (bytes format)

Bieżący stan klienta dla żądanej listy (zaszyfrowany stan klienta otrzymany w ramach ostatniej udanej aktualizacji listy).

Ciąg zakodowany w formacie base64.

constraints

object (Constraints)

Ograniczenia powiązane z tym żądaniem.

Ograniczenia

Ograniczenia związane z tą aktualizacją.

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 pozycji niż ta wartość. Powinno to być potęga 2 z zakresu od 2**10 do 2**20. Jeśli wartość wynosi 0, limit rozmiaru aktualizacji nie jest ustawiony.

maxDatabaseEntries

integer

Określa maksymalną liczbę pozycji, które klient chce mieć w lokalnej bazie danych na potrzeby określonej listy. Powinno to być potęga 2 z zakresu od 2**10 do 2**20. Jeśli wartość wynosi 0, limit rozmiaru bazy danych nie jest ustawiony.

region

string

Pyta o listę dla określonej lokalizacji geograficznej. Jeśli zasada jest nieskonfigurowana, serwer może wybierać tę wartość na podstawie adresu IP użytkownika. Wymagany jest format ISO 3166-1 alfa-2.

supportedCompressions[]

enum (CompressionType)

Typy kompresji obsługiwane przez klienta.

language

string

Powoduje wyświetlenie list dla określonego języka. Wymagany jest format ISO 639 alfa-2.

deviceLocation

string

Fizyczna lokalizacja klienta podana jako kod regionu w formacie ISO 31166-1 alfa-2.

CompressionType

Sposoby, w jakie zbiory wpisów o zagrożeniach mogą być kompresowane.

Wartości w polu enum
COMPRESSION_TYPE_UNSPECIFIED Nieznany.
RAW Nieprzetworzone, nieskompresowane dane.
RICE Dane zakodowane w postaci ryżu i golomba.

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 zagrożeń.

platformType

enum (PlatformType)

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

responseType

enum (ResponseType)

Typ odpowiedzi. Może to oznaczać, że po otrzymaniu odpowiedzi klient musi wykonać działanie.

additions[]

object (ThreatEntrySet)

Zbiór wpisów, które mają zostać dodane do listy lokalnego typu zagrożenia. Te czynności powtarzane umożliwiają wysyłanie w ramach jednej odpowiedzi kombinacji nieprzetworzonych i skompresowanych danych.

removals[]

object (ThreatEntrySet)

Zestaw wpisów, które mają zostać usunięte z listy lokalnego typu zagrożenia. W praktyce to pole jest puste lub zawiera dokładnie jeden ThreatEntrySet.

newClientState

string (bytes format)

Nowy stan klienta w formie zaszyfrowanej. Nieprzezroczyste dla klientów.

Ciąg zakodowany w formacie base64.

checksum

object (Checksum)

Oczekiwany hasz SHA256 stanu klienta, czyli posortowana lista wszystkich haszów istniejących w bazie danych po zastosowaniu podanej 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ł bardzo nieaktualny lub prawdopodobnie uszkodzony.

ThreatEntrySet

Zestaw zagrożeń, które należy dodać do lokalnej bazy danych klienta lub z niej usunąć.

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)

Nieprzetworzone indeksy usuwania dla listy lokalnej.

riceHashes

object (RiceDeltaEncoding)

Zakodowane 4-bajtowe prefiksy wpisów w formacie SHA256 z kodowaniem Golomb-Rice. Skróty są konwertowane do formatu uint32, posortowane w kolejności rosnącej, a następnie zakodowane delta i przechowywane jako dane zakodowane.

riceIndices

object (RiceDeltaEncoding)

Zakodowane lokalne, posortowane leksykograficznie indeksy list z użyciem kodowania Golomb-Rice. Służy do przesyłania skompresowanych indeksów usuwania. Indeksy usuwania (uint32) są sortowane w kolejności rosnącej, a następnie kodowane delta i przechowywane jako zakodowaneDane.

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 są dłuższe w przypadku zderzenia z hashtagiem popularnego adresu URL.

Służy do wysyłania ThreatEntrySet do klientów, które nie obsługują kompresji, lub podczas wysyłania nie4-bajtowych haszy do klientów, które obsługują kompresję.

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

integer

Liczba bajtów dla każdego prefiksu zakodowanego poniżej. W tym polu możesz wpisać dowolną liczbę z zakresu od 4 (najkrótszy prefiks) do 32 (pełny hasz SHA256).

rawHashes

string (bytes format)

Skróty 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 posortowanej leksykograficznie listy lokalnej.

RiceDeltaEncoding

Dane zakodowane w postaci ryżu-golomba. Służy do przesyłania skompresowanych 4-bajtowych haszy lub skompresowanych indeksów usuwania.

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

string (int64 format)

Przesunięcie pierwszego wpisu w kodowanych danych lub, jeśli zakodowana była tylko jedna liczba całkowita, wartość tej pojedynczej liczby całkowitej. Jeśli pole jest puste lub go nie ma, załóżmy, że to zero.

riceParameter

integer

Parametr Golomb-Rice, który jest liczbą od 2 do 28. Tego pola nie ma (czyli 0), jeśli numEntries ma wartość 0.

numEntries

integer

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

encodedData

string (bytes format)

Zakodowane delta zakodowane za pomocą 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 posortowana lista wszystkich haszów dostępnych w bazie danych.

Ciąg zakodowany w formacie base64.