- Żą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 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 ( |
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, 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 „ |
ListUpdateRequest
Jedno żądanie aktualizacji listy.
Zapis JSON |
---|
{ "threatType": enum ( |
Pola | |
---|---|
threatType |
Rodzaj zagrożenia, jakie stwarzają wpisy na liście. |
platformType |
Typ platformy zagrożonej według wpisów na liście. |
threatEntryType |
Typy wpisów na liście. |
state |
Bieżący stan klienta na żądanej liście (zaszyfrowany stan klienta otrzymany po ostatniej udanej aktualizacji listy). Ciąg zakodowany w standardzie 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 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 |
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 |
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[] |
Typy kompresji obsługiwane przez klienta. |
language |
Wysyła żądanie wyświetlenia list dla określonego języka. Oczekiwany jest format ISO 639 alfa-2. |
deviceLocation |
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 ( |
Pola | |
---|---|
threatType |
Typ zagrożenia, w przypadku którego zwracane są dane. |
threatEntryType |
Format zagrożeń. |
platformType |
Typ platformy, w przypadku której zwracane są dane. |
responseType |
Typ odpowiedzi. Może to oznaczać, że po otrzymaniu odpowiedzi klient musi podjąć działanie. |
additions[] |
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[] |
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 |
Nowy stan klienta w formacie zaszyfrowany. Nieprzezroczyste dla klientów. Ciąg zakodowany w standardzie base64. |
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 ( |
Pola | |
---|---|
compressionType |
Typ kompresji wpisów w tym zbiorze. |
rawHashes |
Nieprzetworzone wpisy w formacie SHA256. |
rawIndices |
Nieprzetworzone indeksy usunięć 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 potem zakodowane delta i zapisywane jako encodedData. |
riceIndices |
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 |
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 |
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[] |
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 |
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 |
Parametr Golomb-Rice, który musi mieć wartość od 2 do 28. Jeśli |
numEntries |
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 |
encodedData |
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 |
Skrót SHA256 stanu klienta; czyli posortowana lista wszystkich skrótów dostępnych w bazie danych. Ciąg zakodowany w standardzie base64. |