- Żą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 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 ( |
Pola | |
---|---|
client |
Metadane klienta. |
listUpdateRequests[] |
Żądana lista zagrożeń zostanie zaktualizowana. |
Treść odpowiedzi
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
Zapis JSON | |
---|---|
{
"listUpdateResponses": [
{
object ( |
Pola | |
---|---|
listUpdateResponses[] |
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 |
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 „ |
ListUpdateRequest
Pojedyncza prośba o aktualizację listy.
Zapis JSON | |
---|---|
{ "threatType": enum ( |
Pola | |
---|---|
threatType |
Rodzaj zagrożenia, jakie stwarzają wpisy na liście. |
platformType |
Rodzaj platformy zagrożonej przez wpisy na liście. |
threatEntryType |
Typy wpisów na liście. |
state |
Bieżący stan klienta dla żądanej listy (zaszyfrowany stan klienta otrzymany w ramach ostatniej udanej aktualizacji listy). Ciąg zakodowany w formacie base64. |
constraints |
Ograniczenia powiązane z tym żądaniem. |
Ograniczenia
Ograniczenia związane z tą aktualizacją.
Zapis JSON | |
---|---|
{
"maxUpdateEntries": integer,
"maxDatabaseEntries": integer,
"region": string,
"supportedCompressions": [
enum ( |
Pola | |
---|---|
maxUpdateEntries |
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 |
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 |
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[] |
Typy kompresji obsługiwane przez klienta. |
language |
Powoduje wyświetlenie list dla określonego języka. Wymagany jest format ISO 639 alfa-2. |
deviceLocation |
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 ( |
Pola | |
---|---|
threatType |
Typ zagrożenia, w przypadku którego zwracane są dane. |
threatEntryType |
Format zagrożeń. |
platformType |
Typ platformy, dla której zwracane są dane. |
responseType |
Typ odpowiedzi. Może to oznaczać, że po otrzymaniu odpowiedzi klient musi wykonać działanie. |
additions[] |
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[] |
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 |
Nowy stan klienta w formie zaszyfrowanej. Nieprzezroczyste dla klientów. Ciąg zakodowany w formacie base64. |
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 ( |
Pola | |
---|---|
compressionType |
Typ kompresji wpisów w tym zbiorze. |
rawHashes |
Nieprzetworzone wpisy w formacie SHA256. |
rawIndices |
Nieprzetworzone indeksy usuwania dla listy lokalnej. |
riceHashes |
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 |
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 |
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 |
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[] |
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 |
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 |
Parametr Golomb-Rice, który jest liczbą od 2 do 28. Tego pola nie ma (czyli 0), jeśli |
numEntries |
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 |
encodedData |
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 |
Skrót SHA256 stanu klienta, czyli posortowana lista wszystkich haszów dostępnych w bazie danych. Ciąg zakodowany w formacie base64. |