- Żądanie HTTP
- Parametry zapytania
- Treść żądania
- Treść odpowiedzi
- FullHash
- FullHashDetail
- ThreatAttribute
Wyszukiwanie pełnych haszy pasujących do określonych prefiksów.
Jest to metoda niestandardowa zdefiniowana na stronie https://google.aip.dev/136. Jest to metoda, która odnosi się do metody mającej niestandardową nazwę w ogólnym nomenklaturze programistycznego Google dotyczącej interfejsów API; nie odnosi się do korzystania z niestandardowej metody HTTP.
Żądanie HTTP
GET https://safebrowsing.googleapis.com/v5alpha1/hashes:search
Adres URL używa składni transkodowania gRPC.
Parametry zapytania
Parametry | |
---|---|
hashPrefixes[] |
Wymagane. Prefiksy skrótu do wyszukania. Klienty NIE MOGĄ wysyłać więcej niż 1000 prefiksów skrótu. Jednak zgodnie z procedurą przetwarzania adresów URL klienci NIE POWINNY wysyłać więcej niż 30 prefiksów skrótu. Obecnie każdy prefiks skrótu musi mieć dokładnie 4 bajty długości. W przyszłości MOŻESZ odpocząć. Ciąg zakodowany w formacie base64. |
filter |
Opcjonalnie: Możesz określić tę opcję, jeśli klient jest zainteresowany filtrowaniem, na przykład pobieraniem tylko określonych rodzajów zagrożeń. Jeśli zostanie pominięty, zwracane są wszystkie pasujące zagrożenia. Zdecydowanie zalecamy pominięcie tego ustawienia w celu uzyskania pełniejszej ochrony, jaką Bezpieczne przeglądanie może zapewnić. Filtr jest określony przy użyciu języka Google Common Expression Language, który znajdziesz na https://github.com/google/cel-spec wraz z ogólnymi przykładami. Oto kilka konkretnych przykładów: Filtr Filtr |
Treść żądania
Treść żądania musi być pusta.
Treść odpowiedzi
Odpowiedź zwrócona po przeszukaniu haszy zagrożeń.
Jeśli nic nie zostanie znalezione, serwer zwróci stan OK (kod stanu HTTP 200) z pustym polem fullHashes
zamiast stanu NOT_FOUND (kod stanu HTTP 404).
Nowości w wersji 5: FullHash
i FullHashDetail
są rozdzielone. W przypadku, gdy hasz reprezentuje witrynę z wieloma zagrożeniami (np. zarówno MALWARE, jak i SOCIAL_ENGINEERING), pełny hasz nie musi być przesyłany dwukrotnie niż w wersji 4. Ponadto czas przechowywania w pamięci podręcznej został uproszczony do umieszczenia w jednym polu cacheDuration
.
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
Zapis JSON |
---|
{
"fullHashes": [
{
object ( |
Pola | |
---|---|
fullHashes[] |
Lista nieuporządkowana. Nieuporządkowana lista znalezionych pełnych haszów. |
cacheDuration |
Czas trwania pamięci podręcznej po stronie klienta. Aby określić czas ważności, klient MUSI dodać ten czas do bieżącego czasu. Okres ważności jest następnie stosowany do każdego prefiksu skrótu, którego klient zażąda w żądaniu, niezależnie od tego, ile pełnych haszów zostało zwróconych w odpowiedzi. Nawet jeśli serwer nie zwraca pełnych haszów dla określonego prefiksu skrótu, ten fakt MUSI również być zapisany w pamięci podręcznej klienta. Jeśli pole Ważne: klient NIE MOŻE zakładać, że serwer zwróci taki sam czas trwania pamięci podręcznej dla wszystkich odpowiedzi. W zależności od sytuacji serwer MOŻE wybrać różne czasy przechowywania w pamięci podręcznej dla różnych odpowiedzi. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „ |
FullHash
Pełny hasz identyfikowany z co najmniej jednym dopasowaniem.
Zapis JSON |
---|
{
"fullHash": string,
"fullHashDetails": [
{
object ( |
Pola | |
---|---|
fullHash |
Pasujący pełny hasz. Jest to identyfikator SHA256. Będzie on miał dokładnie 32 bajty. Ciąg zakodowany w formacie base64. |
fullHashDetails[] |
Lista nieuporządkowana. Pole powtarzane identyfikujące szczegóły dotyczące tego pełnego hasza. |
FullHashDetail
Szczegółowe informacje o pasującym pełnym haszie.
Ważna uwaga na temat zgodności z przekierowywaniem: serwer w dowolnym momencie może dodawać nowe typy zagrożeń i atrybuty zagrożeń. takie dodatki są uznawane za drobne zmiany w wersji. Zasadą obsługi wersji jest zasady Google, które nie ujawniają numerów wersji podrzędnych w interfejsach API (zasady obsługi wersji znajdziesz na stronie https://cloud.google.com/apis/design/versioning), dlatego klienty MUSZĄ być przygotowane na otrzymywanie komunikatów typu FullHashDetail
zawierających wartości wyliczeniowe ThreatType
lub ThreatAttribute
wartości wyliczeniowe uznane przez klienta za nieprawidłowe. Dlatego to klient odpowiada za sprawdzenie poprawności wszystkich wartości wyliczeniowych ThreatType
i ThreatAttribute
. Jeśli którakolwiek wartość zostanie uznana za nieprawidłową, klient MUSI zignorować całą wiadomość FullHashDetail
.
Zapis JSON |
---|
{ "threatType": enum ( |
Pola | |
---|---|
threatType |
Typ zagrożenia. To pole nigdy nie będzie puste. |
attributes[] |
Lista nieuporządkowana. Dodatkowe atrybuty związane z tymi pełnymi haszami. To pole może być puste. |
ThreatAttribute
Atrybuty zagrożeń. Te atrybuty mogą nadawać konkretnemu zagrożeniu dodatkowe znaczenie, ale nie mają wpływu na jego typ. Na przykład atrybut może określać niższy poziom ufności, a inny atrybut – wyższy poziom ufności. W przyszłości możemy dodać więcej atrybutów.
Wartości w polu enum | |
---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
Nieznany atrybut. Jeśli serwer zwróci taką wartość, klient całkowicie zignoruje zamykający element FullHashDetail . |
CANARY |
Wskazuje, że obiekt threatType nie powinien być używany do egzekwowania. |
FRAME_ONLY |
Wskazuje, że threatType powinien być używany tylko do egzekwowania zasad w ramkach. |