Выполняет поиск полных хешей, соответствующих указанным префиксам.
Это пользовательский метод, как определено в https://google.aip.dev/136 (пользовательский метод означает, что этот метод имеет собственное имя в рамках общей номенклатуры разработки API Google; он не относится к использованию пользовательского HTTP-метода).
HTTP-запрос
GET https://safebrowsing.googleapis.com/v5alpha1/hashes:search
В URL-адресе используется синтаксис транскодирования gRPC .
Параметры запроса
| Параметры | |
|---|---|
hashPrefixes[] | Обязательно. Хэш-префиксы, которые необходимо найти. Клиенты НЕ ДОЛЖНЫ отправлять более 1000 хэш-префиксов. Однако, в соответствии с процедурой обработки URL-адресов, клиентам НЕ ДОЛЖНО потребоваться отправлять более 30 хэш-префиксов. В настоящее время длина каждого префикса хеша должна составлять ровно 4 байта. В будущем это требование МОЖЕТ быть смягчено. Строка, закодированная в формате Base64. |
filter | Необязательно. Если клиент заинтересован в фильтрации, например, в получении только определенных типов угроз, этот параметр можно указать. Если он опущен, будут возвращены все соответствующие угрозы. Настоятельно рекомендуется опустить этот параметр для обеспечения максимально полной защиты, которую может предложить Safe Browsing. Фильтр задается с использованием языка выражений Google Common Expression Language, который можно найти по адресу https://github.com/google/cel-spec вместе с общими примерами. Вот несколько конкретных примеров, которые можно использовать: Фильтр Фильтр |
Текст запроса
Тело запроса должно быть пустым.
Ответный текст
Ответ был получен после поиска по хэшам угроз.
Если ничего не найдено, сервер вернет статус OK (код состояния HTTP 200) с пустым полем fullHashes , вместо статуса NOT_FOUND (код состояния HTTP 404).
Что нового в версии 5 : Разделение между FullHash и FullHashDetail . В случае, когда хеш представляет сайт, содержащий несколько угроз (например, как вредоносное ПО, так и социальная инженерия), полный хеш не нужно отправлять дважды, как в версии 4. Кроме того, длительность кэширования упрощена и теперь представляет собой одно поле cacheDuration .
В случае успеха тело ответа содержит данные следующей структуры:
| JSON-представление |
|---|
{
"fullHashes": [
{
object ( |
| Поля | |
|---|---|
fullHashes[] | Неупорядоченный список. Неупорядоченный список найденных полных хешей. |
cacheDuration | Длительность кэширования на стороне клиента. Клиент ОБЯЗАТЕЛЬНО должен добавить эту длительность к текущему времени, чтобы определить время истечения срока действия. Время истечения срока действия затем применяется ко всем префиксам хешей, запрашиваемым клиентом в запросе, независимо от того, сколько полных хешей возвращается в ответе. Даже если сервер не возвращает полных хешей для конкретного префикса хешей, этот факт также ДОЛЖЕН быть кэширован клиентом. Только если поле Важно: клиент НЕ ДОЛЖЕН предполагать, что сервер вернет одинаковую продолжительность кэширования для всех ответов. Сервер МОЖЕТ выбрать разную продолжительность кэширования для разных ответов в зависимости от ситуации. Длительность в секундах, содержащая до девяти знаков после запятой, заканчивающаяся на « |
FullHash
Полный хеш, соответствующий одному или нескольким совпадениям.
| JSON-представление |
|---|
{
"fullHash": string,
"fullHashDetails": [
{
object ( |
| Поля | |
|---|---|
fullHash | Соответствующий полный хеш. Это хеш SHA256. Длина составит ровно 32 байта. Строка, закодированная в формате Base64. |
fullHashDetails[] | Неупорядоченный список. Повторяющееся поле, определяющее детали, относящиеся к этому полному хешу. |
FullHashDetail
Подробности о совпадающем полном хеше.
Важное замечание относительно обратной совместимости: сервер может в любое время добавлять новые типы угроз и атрибуты угроз; эти дополнения считаются изменениями минорных версий. Политика Google не предусматривает раскрытие номеров минорных версий в API (см. https://cloud.google.com/apis/design/versioning для ознакомления с политикой версионирования), поэтому клиенты ДОЛЖНЫ быть готовы получать сообщения FullHashDetail содержащие значения перечисления ThreatType или ThreatAttribute , которые клиент считает недействительными. Следовательно, клиент несет ответственность за проверку действительности всех значений перечисления ThreatType и ThreatAttribute ; если какое-либо значение считается недействительным, клиент ДОЛЖЕН игнорировать все сообщение FullHashDetail .
| JSON-представление |
|---|
{ "threatType": enum ( |
| Поля | |
|---|---|
threatType | Тип угрозы. Это поле никогда не будет пустым. |
attributes[] | Неупорядоченный список. Дополнительные атрибуты, относящиеся к этим полным хешам. Может быть пустым. |
Атрибут угрозы
Атрибуты угроз. Эти атрибуты могут придавать конкретному угрозе дополнительное значение, но не влияют на её тип. Например, один атрибут может указывать на более низкую степень уверенности, а другой — на более высокую. В будущем могут быть добавлены и другие атрибуты.
| Перечисления | |
|---|---|
THREAT_ATTRIBUTE_UNSPECIFIED | Неизвестный атрибут. Если сервер вернет этот атрибут, клиент должен полностью проигнорировать содержащийся в нем FullHashDetail . |
CANARY | Указывает, что параметр threatType не следует использовать для обеспечения соблюдения правил. |
FRAME_ONLY | Указывает, что threatType следует использовать только для принудительного применения к кадрам. |