- Żądanie HTTP
- Treść żądania
- Treść odpowiedzi
- ListUpdateRequest
- Ograniczenia
- CompressionType
- ListUpdateResponse
- ResponseType
- ThreatEntrySet
- RawHashes
- RawIndices
- RiceDeltaEncoding
- Suma kontrolna
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 ( |
Pola | |
---|---|
client |
Metadane klienta. |
listUpdateRequests[] |
Żą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 ( |
Pola | |
---|---|
listUpdateResponses[] |
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 |
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ą „ |
ListUpdateRequest
Jedno żądanie aktualizacji listy.
Zapis JSON |
---|
{ "threatType": enum ( |
Pola | |
---|---|
threatType |
Rodzaj zagrożenia ze strony wpisów na liście. |
platformType |
Typ platformy zagrożonej według pozycji na liście. |
threatEntryType |
Typy wpisów na liście. |
state |
Bieżący stan klienta dla żądanej listy (stan zaszyfrowanego klienta otrzymany po ostatniej udanej aktualizacji listy). Ciąg zakodowany w formacie base64. |
constraints |
Ograniczenia powiązane z tym żądaniem. |
Ograniczenia
Ograniczenia tej aktualizacji.
Zapis JSON |
---|
{
"maxUpdateEntries": integer,
"maxDatabaseEntries": integer,
"region": string,
"supportedCompressions": [
enum ( |
Pola | |
---|---|
maxUpdateEntries |
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 |
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 |
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[] |
Typy kompresji obsługiwane przez klienta. |
language |
Służy do wyświetlania prośby o listy dla konkretnego języka. Oczekiwany jest format ISO 639 alfa-2. |
deviceLocation |
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 ( |
Pola | |
---|---|
threatType |
Typ zagrożenia, w przypadku którego zwracane są dane. |
threatEntryType |
Format gróźb. |
platformType |
Typ platformy, dla której są zwracane dane. |
responseType |
Typ odpowiedzi. Może to oznaczać, że po otrzymaniu odpowiedzi klient będzie musiał wykonać określone działanie. |
additions[] |
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[] |
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 |
Nowy stan klienta w formacie zaszyfrowanym. Nieprzezroczyste dla klientów. Ciąg zakodowany w formacie base64. |
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 ( |
Pola | |
---|---|
compressionType |
Typ kompresji wpisów w tym zbiorze. |
rawHashes |
Nieprzetworzone wpisy w formacie SHA256. |
rawIndices |
Wskaźniki usunięcia nieprzetworzonych danych dla listy lokalnej. |
riceHashes |
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 |
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 |
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 |
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[] |
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 |
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 |
Parametr Golomb-Rice, który ma wartość od 2 do 28. Brak tego pola (czyli 0), jeśli |
numEntries |
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 |
encodedData |
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 |
Skrót SHA256 stanu klienta; czyli posortowanej listy wszystkich haszy występujących w bazie danych. Ciąg zakodowany w formacie base64. |