- Żądanie HTTP
- Parametry zapytania
- Treść żądania
- Treść odpowiedzi
- FullHash
- FullHashDetail
- ThreatAttribute
Wyszukaj pełne wartości skrótu pasujące do określonych prefiksów.
Jest to metoda niestandardowa zdefiniowana w dokumentacji https://google.aip.dev/136 (metoda niestandardowa odnosi się do tej metody mającej niestandardową nazwę w ogólnej nomenklaturze Google dotyczącej tworzenia interfejsów API; nie odnosi się do korzystania z niestandardowej metody HTTP).
Żądanie HTTP
GET https://safebrowsing.googleapis.com/v5/hashes:search
Adres URL używa składni transkodowania gRPC.
Parametry zapytania
Parametry | |
---|---|
hashPrefixes[] |
Wymagane. Prefiksy haszy do wyszukania. Klienci NIE MOGĄ wysyłać więcej niż 1000 prefiksów haszowanych. Jednak zgodnie z procedurą przetwarzania adresów URL klienci NIE powinni wysyłać więcej niż 30 prefiksów haszowania. Obecnie każdy prefiks hasha musi mieć dokładnie 4 bajty. W przyszłości możemy złagodzić te wymagania. Ciąg znaków zakodowany w formacie Base64. |
Treść żądania
Treść żądania musi być pusta.
Treść odpowiedzi
Odpowiedź zwrócona po wyszukaniu haszy zagrożeń.
Jeśli nie zostanie znaleziony żaden dokument, serwer zwróci stan OK (kod stanu HTTP 200) z pustym polem fullHashes
, zamiast stanu NOT_FOUND (kod stanu HTTP 404).
Co nowego w wersji 5: występuje rozdział między FullHash
a FullHashDetail
. W przypadku, gdy hasz reprezentuje witrynę z wieloma zagrożeniami (np. MALWARE i SOCIAL_ENGINEERING), nie trzeba wysyłać pełnego hasza dwukrotnie, jak w wersji 4. Ponadto czas trwania pamięci podręcznej został uproszczony i przeniesiony do pojedynczego pola 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 haszy. |
cacheDuration |
Czas trwania pamięci podręcznej po stronie klienta. Aby określić czas wygaśnięcia, klient MUSI dodać ten czas do bieżącego czasu. Czas wygaśnięcia dotyczy każdego prefiksu hasha zapytanego przez klienta w żądaniu, niezależnie od tego, ile pełnych hashy zwraca odpowiedź. Nawet jeśli serwer nie zwróci pełnych haszy dla konkretnego prefiksu hasza, klient MUSI przechowywać ten fakt w pamięci podręcznej. Jeśli i tylko jeśli pole Ważne: klient NIE MOŻE zakładać, że serwer zwróci ten 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 w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „ |
FullHash
Pełny skrót identyfikujący co najmniej 1 pasowanie.
Zapis JSON |
---|
{
"fullHash": string,
"fullHashDetails": [
{
object ( |
Pola | |
---|---|
fullHash |
Dopasowany pełny ciąg znaków. Jest to identyfikator SHA256. Długość będzie wynosić dokładnie 32 bajty. Ciąg znaków zakodowany w formacie Base64. |
fullHashDetails[] |
Lista nieuporządkowana. Powtarzające się pole z informacjami dotyczącymi tego pełnego hasha. |
FullHashDetail
Szczegóły pasującego pełnego hasza.
Ważna uwaga dotycząca zgodności wstecznej: serwer może w dowolnym momencie dodać nowe typy zagrożeń i atrybuty zagrożeń. Te dodatki są uważane za drobne zmiany wersji. Zgodnie z zasadami Google nie należy ujawniać numerów wersji podrzędnych w interfejsach API (zasady dotyczące wersji znajdziesz na stronie https://cloud.google.com/apis/design/versioning), więc klienci MUSZĄ być gotowi do odbierania wiadomości FullHashDetail
zawierających wartości wyliczenia ThreatType
lub ThreatAttribute
, które są uważane za nieprawidłowe przez klienta. Dlatego klient musi sprawdzić poprawność wszystkich wartości wyliczenia ThreatType
i ThreatAttribute
. Jeśli jakakolwiek 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 dotyczące pełnych haszy; To pole może być puste. |
ThreatAttribute
Atrybuty zagrożeń. Te atrybuty mogą nadawać dodatkowe znaczenie określonym zagrożeniom, ale nie mają wpływu na ich typ. Na przykład atrybut może określać mniejsze prawdopodobieństwo, a inny – większe. 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 ten kod, klient powinien całkowicie zignorować otoczkę FullHashDetail . |
CANARY |
Wskazuje, że typu threatType nie należy używać do egzekwowania zasad. |
FRAME_ONLY |
Oznacza, że typ zagrożenia powinien być używany tylko do egzekwowania zasad w ramkach. |