Method: threatListUpdates.fetch

Pobiera najnowsze aktualizacje listy zagrożeń. Klient może poprosić o aktualizacje 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, przez jaki klient musi czekać przed wysłaniem żądania aktualizacji. Jeśli to pole nie jest skonfigurowane, klienci mogą aktualizować dane tak szybko, jak chcą.

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „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, jakie stwarzają wpisy na liście.

platformType

enum (PlatformType)

Typ platformy zagrożonej według wpisów na liście.

threatEntryType

enum (ThreatEntryType)

Typy wpisów na liście.

state

string (bytes format)

Bieżący stan klienta na żądanej liście (zaszyfrowany stan klienta otrzymany po ostatniej udanej aktualizacji listy).

Ciąg zakodowany w standardzie 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 w liczbie wpisów. Aktualizacja nie będzie zawierać więcej pozycji niż ta wartość. Powinna 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ę wpisów, które klient może mieć w lokalnej bazie danych na potrzeby określonej listy. Powinna to być potęga 2 z zakresu od 2**10 do 2**20. Wartość 0 nie powoduje ustawienia limitu rozmiaru bazy danych.

region

string

Wysyła żądanie wyświetlenia listy dla określonej lokalizacji geograficznej. Jeśli zasada jest nieskonfigurowana, 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

Wysyła żądanie wyświetlenia list dla określonego języka. Oczekiwany jest format ISO 639 alfa-2.

deviceLocation

string

Fizyczna lokalizacja klienta, wyrażona jako kod regionu zgodny ze standardem ISO 31166-1 alfa-2.

CompressionType

Sposoby kompresowania zbiorów wpisów zagrożeń.

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, w przypadku której zwracane są dane.

responseType

enum (ResponseType)

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

additions[]

object (ThreatEntrySet)

Zestaw wpisów, które należy dodać do listy lokalnego typu zagrożeń. Powtarzanie tych czynności, aby umożliwić wysłanie kombinacji skompresowanych i nieprzetworzonych danych w ramach jednej odpowiedzi.

removals[]

object (ThreatEntrySet)

Zestaw wpisów do usunięcia z listy lokalnego typu zagrożeń. W praktyce to pole jest puste lub zawiera dokładnie jeden ThreatEntrySet.

newClientState

string (bytes format)

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

Ciąg zakodowany w standardzie base64.

checksum

object (Checksum)

Oczekiwany hasz SHA256 stanu klienta; jest to posortowana lista wszystkich haszów obecnych 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ł przestarzały lub prawdopodobnie jest 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 usunięć 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 potem zakodowane delta i zapisywane jako encodedData.

riceIndices

object (RiceDeltaEncoding)

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

RawHashes

Nieskompresowane wpisy zagrożenia 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, jeśli zderzą się z hashtagiem popularnego adresu URL.

Służy do wysyłania ThreatEntrySet do klientów, które nie obsługują kompresji, lub do wysyłania skrótów nie4-bajtowych 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. Pole może zawierać dowolną z wartości od 4 (najkrótszy prefiks) do 32 (pełny hasz SHA256).

rawHashes

string (bytes format)

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

Ciąg zakodowany w standardzie 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 haszów lub skompresowanych indeksów usuwania.

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

string (int64 format)

Przesunięcie pierwszej pozycji w zakodowanych 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, przyjmujej wartość 0.

riceParameter

integer

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

numEntries

integer

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

encodedData

string (bytes format)

Zakodowane delta zakodowane za pomocą kodera Golomb-Rice.

Ciąg zakodowany w standardzie 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 skrótów dostępnych w bazie danych.

Ciąg zakodowany w standardzie base64.