- HTTP-запрос
- Тело запроса
- Тело ответа
- ListUpdateRequest
- Ограничения
- Тип сжатия
- Листупдатеответ
- Тип ответа
- ThreatEntrySet
- RawHashes
- Необработанные индексы
- РайсДельтаКодирование
- Контрольная сумма
Получает самые последние обновления списка угроз. Клиент может запросить обновления для нескольких списков одновременно.
HTTP-запрос
POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch
URL-адрес использует синтаксис транскодирования gRPC .
Тело запроса
Тело запроса содержит данные следующей структуры:
JSON-представление |
---|
{ "client": { object ( |
Поля | |
---|---|
client | Метаданные клиента. |
listUpdateRequests[] | Запрошенные обновления списка угроз. |
Тело ответа
В случае успеха тело ответа содержит данные следующей структуры:
JSON-представление |
---|
{
"listUpdateResponses": [
{
object ( |
Поля | |
---|---|
listUpdateResponses[] | Обновления списка по запросу клиентов. Количество ответов здесь может быть меньше количества запросов, отправленных клиентами. Это имеет место, например, если на сервере нет обновлений для определенного списка. |
minimumWaitDuration | Минимальная продолжительность ожидания, которую клиент должен ждать перед отправкой запроса на обновление. Если это поле не установлено, клиенты могут обновляться, как только захотят. Продолжительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « |
ListUpdateRequest
Единый запрос на обновление списка.
JSON-представление |
---|
{ "threatType": enum ( |
Поля | |
---|---|
threatType | Тип угрозы, которую представляют записи, присутствующие в списке. |
platformType | Тип платформы, подверженной риску, по записям, присутствующим в списке. |
threatEntryType | Типы записей, представленных в списке. |
state | Текущее состояние клиента запрошенного списка (зашифрованное состояние клиента, полученное в результате последнего успешного обновления списка). Строка в кодировке Base64. |
constraints | Ограничения, связанные с этим запросом. |
Ограничения
Ограничения для этого обновления.
JSON-представление |
---|
{
"maxUpdateEntries": integer,
"maxDatabaseEntries": integer,
"region": string,
"supportedCompressions": [
enum ( |
Поля | |
---|---|
maxUpdateEntries | Максимальный размер по количеству записей. Обновление не будет содержать больше записей, чем это значение. Это должна быть степень 2 между 2**10 и 2**20. Если ноль, ограничение размера обновления не установлено. |
maxDatabaseEntries | Устанавливает максимальное количество записей, которые клиент желает иметь в локальной базе данных для указанного списка. Это должна быть степень 2 между 2**10 и 2**20. Если ноль, ограничение размера базы данных не установлено. |
region | Запрашивает список для определенного географического местоположения. Если этот параметр не установлен, сервер может выбрать это значение на основе IP-адреса пользователя. Ожидается формат ISO 3166-1 альфа-2. |
supportedCompressions[] | Типы сжатия, поддерживаемые клиентом. |
language | Запрашивает списки для определенного языка. Ожидается формат ISO 639 альфа-2. |
deviceLocation | Физическое местоположение клиента, выраженное в виде кода региона ISO 31166-1 альфа-2. |
Тип сжатия
Способы сжатия наборов записей об угрозах.
Перечисления | |
---|---|
COMPRESSION_TYPE_UNSPECIFIED | Неизвестный. |
RAW | Необработанные несжатые данные. |
RICE | Данные в кодировке Райса-Голомба. |
ListUpdateResponse
Обновление индивидуального списка.
JSON-представление |
---|
{ "threatType": enum ( |
Поля | |
---|---|
threatType | Тип угрозы, для которой возвращаются данные. |
threatEntryType | Формат угроз. |
platformType | Тип платформы, для которой возвращаются данные. |
responseType | Тип ответа. Это может указывать на то, что при получении ответа от клиента требуется действие. |
additions[] | Набор записей для добавления в список типов локальных угроз. Повторяется, чтобы разрешить отправку комбинации сжатых и необработанных данных в одном ответе. |
removals[] | Набор записей, которые необходимо удалить из списка типов локальных угроз. На практике это поле пусто или содержит ровно один ThreatEntrySet. |
newClientState | Новое состояние клиента в зашифрованном формате. Непрозрачен для клиентов. Строка в кодировке Base64. |
checksum | Ожидаемый хеш SHA256 состояния клиента; то есть отсортированный список всех хешей, присутствующих в базе данных после применения предоставленного обновления. Если состояние клиента не соответствует ожидаемому состоянию, клиент должен проигнорировать это обновление и повторить попытку позже. |
Тип ответа
Тип ответа, отправляемого клиенту.
Перечисления | |
---|---|
RESPONSE_TYPE_UNSPECIFIED | Неизвестный. |
PARTIAL_UPDATE | Частичные обновления применяются к существующей локальной базе данных клиента. |
FULL_UPDATE | Полные обновления заменяют всю локальную базу данных клиента. Это означает, что либо клиент серьезно устарел, либо клиент считается поврежденным. |
ThreatEntrySet
Набор угроз, которые необходимо добавить или удалить из локальной базы данных клиента.
JSON-представление |
---|
{ "compressionType": enum ( |
Поля | |
---|---|
compressionType | Тип сжатия для записей в этом наборе. |
rawHashes | Необработанные записи в формате SHA256. |
rawIndices | Необработанные индексы удаления для локального списка. |
riceHashes | Закодированные 4-байтовые префиксы записей в формате SHA256 с использованием кодировки Голомба-Райса. Хэши преобразуются в uint32, сортируются в порядке возрастания, затем дельта-кодируются и сохраняются как encodedData. |
riceIndices | Закодированные локальные индексы списков с лексикографической сортировкой с использованием кодировки Голомба-Райса. Используется для отправки сжатых индексов удаления. Индексы удаления (uint32) сортируются в порядке возрастания, затем дельта-кодируются и сохраняются как encodedData. |
RawHashes
Несжатые записи об угрозах в формате хэша с определенной длиной префикса. Хэши могут иметь размер от 4 до 32 байт. Подавляющее большинство из них имеют длину 4 байта, но некоторые хеши удлиняются, если они конфликтуют с хешем популярного URL-адреса.
Используется для отправки ThreatEntrySet клиентам, не поддерживающим сжатие, или при отправке не4-байтовых хэшей клиентам, поддерживающим сжатие.
JSON-представление |
---|
{ "prefixSize": integer, "rawHashes": string } |
Поля | |
---|---|
prefixSize | Количество байтов для каждого префикса, закодированного ниже. Это поле может иметь любое значение от 4 (самый короткий префикс) до 32 (полный хэш SHA256). |
rawHashes | Хэши в двоичном формате объединены в одну длинную строку. Хэши сортируются в лексикографическом порядке. Для пользователей JSON API хеши имеют кодировку Base64. Строка в кодировке Base64. |
Необработанные индексы
Набор необработанных индексов, которые нужно удалить из локального списка.
JSON-представление |
---|
{ "indices": [ integer ] } |
Поля | |
---|---|
indices[] | Индексы, которые необходимо удалить из локального списка, отсортированного по лексикографическому принципу. |
РайсДельтаКодирование
Данные, закодированные Райсом-Голомбом. Используется для отправки сжатых 4-байтовых хешей или сжатых индексов удаления.
JSON-представление |
---|
{ "firstValue": string, "riceParameter": integer, "numEntries": integer, "encodedData": string } |
Поля | |
---|---|
firstValue | Смещение первой записи в закодированных данных или, если было закодировано только одно целое число, значение этого одного целого числа. Если поле пусто или отсутствует, примите ноль. |
riceParameter | Параметр Голомба-Райса, представляющий собой число от 2 до 28. Это поле отсутствует (то есть равно нулю), если |
numEntries | Количество записей, которые закодированы дельта-кодом в закодированных данных. Если было закодировано только одно целое число, оно будет равно нулю, и единственное значение будет сохранено в |
encodedData | Закодированные дельты, закодированные с помощью кодера Голомба-Райса. Строка в кодировке Base64. |
Контрольная сумма
Ожидаемое состояние локальной базы данных клиента.
JSON-представление |
---|
{ "sha256": string } |
Поля | |
---|---|
sha256 | Хэш SHA256 состояния клиента; то есть отсортированный список всех хешей, присутствующих в базе данных. Строка в кодировке Base64. |