Method: hashes.search

Поиск полных хешей, соответствующих указанным префиксам.

Это пользовательский метод, как определено на https://google.aip.dev/136 (пользовательский метод относится к этому методу, имеющему пользовательское имя в общей номенклатуре разработки API Google; он не относится к использованию пользовательского метода HTTP).

HTTP-запрос

GET https://safebrowsing.googleapis.com/v5/hashes:search

URL-адрес использует синтаксис gRPC Transcoding .

Параметры запроса

Параметры
hashPrefixes[]

string ( bytes format)

Обязательно. Префиксы хеша, которые нужно найти. Клиенты НЕ ДОЛЖНЫ отправлять более 1000 префиксов хеша. Однако, следуя процедуре обработки URL, клиентам НЕ ДОЛЖНО НУЖНО отправлять более 30 префиксов хеша.

В настоящее время каждый префикс хеша должен быть длиной ровно 4 байта. Это МОЖЕТ быть смягчено в будущем.

Строка в кодировке base64.

Текст запроса

Тело запроса должно быть пустым.

Тело ответа

Ответ был получен после поиска хэшей угроз.

Если ничего не найдено, сервер вернет статус OK (код статуса HTTP 200) с пустым полем fullHashes , а не вернет статус NOT_FOUND (код статуса HTTP 404).

Что нового в V5 : Существует разделение между FullHash и FullHashDetail . В случае, когда хэш представляет сайт с несколькими угрозами (например, как MALWARE, так и SOCIAL_ENGINEERING), полный хэш не нужно отправлять дважды, как в V4. Кроме того, длительность кэша была упрощена до одного поля cacheDuration .

В случае успеха тело ответа содержит данные со следующей структурой:

JSON-представление
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
Поля
fullHashes[]

object ( FullHash )

Неупорядоченный список. Неупорядоченный список найденных полных хешей.

cacheDuration

string ( Duration format)

Продолжительность кэширования на стороне клиента. Клиент ДОЛЖЕН добавить эту продолжительность к текущему времени, чтобы определить время истечения срока. Затем время истечения срока применяется к каждому префиксу хеша, запрошенному клиентом в запросе, независимо от того, сколько полных хешей возвращено в ответе. Даже если сервер не возвращает полных хешей для определенного префикса хеша, этот факт ДОЛЖЕН также быть кэширован клиентом.

Если и только если поле fullHashes пустое, клиент МОЖЕТ увеличить cacheDuration , чтобы определить новое истечение срока действия, которое будет позже указанного сервером. В любом случае увеличенная продолжительность кэша не должна превышать 24 часов.

Важно: клиент НЕ ДОЛЖЕН предполагать, что сервер вернет одинаковую продолжительность кэширования для всех ответов. Сервер МОЖЕТ выбирать разную продолжительность кэширования для разных ответов в зависимости от ситуации.

Длительность в секундах с дробной частью до девяти цифр, заканчивающаяся на ' s '. Пример: "3.5s" .

ПолныйХэш

Полный хэш, идентифицированный с одним или несколькими совпадениями.

JSON-представление
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
Поля
fullHash

string ( bytes format)

Соответствующий полный хэш. Это хэш SHA256. Длина будет ровно 32 байта.

Строка в кодировке base64.

fullHashDetails[]

object ( FullHashDetail )

Неупорядоченный список. Повторяющееся поле, идентифицирующее детали, относящиеся к этому полному хешу.

FullHashDetail

Подробная информация о совпадающем полном хэше.

Важное замечание о прямой совместимости: новые типы угроз и атрибуты угроз могут быть добавлены сервером в любое время; эти добавления считаются незначительными изменениями версии. Политика Google заключается в том, чтобы не раскрывать номера незначительных версий в API (см. https://cloud.google.com/apis/design/versioning для политики управления версиями), поэтому клиенты ДОЛЖНЫ быть готовы к получению сообщений FullHashDetail , содержащих значения перечисления ThreatType или значения перечисления ThreatAttribute , которые клиент считает недействительными. Таким образом, клиент несет ответственность за проверку действительности всех значений перечисления ThreatType и ThreatAttribute ; если какое-либо значение считается недействительным, клиент ДОЛЖЕН игнорировать все сообщение FullHashDetail .

JSON-представление
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
Поля
threatType

enum ( ThreatType )

Тип угрозы. Это поле никогда не будет пустым.

attributes[]

enum ( ThreatAttribute )

Неупорядоченный список. Дополнительные атрибуты о полных хэшах. Это может быть пустым.

Атрибут угрозы

Атрибуты угроз. Эти атрибуты могут придавать дополнительное значение конкретной угрозе, но не повлияют на тип угрозы. Например, атрибут может указывать на более низкую достоверность, в то время как другой атрибут может указывать на более высокую достоверность. В будущем могут быть добавлены дополнительные атрибуты.

Перечисления
THREAT_ATTRIBUTE_UNSPECIFIED Неизвестный атрибут. Если это возвращено сервером, клиент должен полностью проигнорировать прилагаемый FullHashDetail .
CANARY Указывает, что threatType не следует использовать для принуждения.
FRAME_ONLY Указывает, что threatType следует использовать только для принудительного применения к кадрам.