Введение

Safe Browsing API позволяет проверить URL на наличие угроз. Список небезопасных интернет-ресурсов создан и поддерживается Яндексом. К небезопасным относятся, например, сайты с элементами социальной инженерии (фишинг и мошенничество) и сайты c вредоносным или нежелательным кодом.

Чтобы проверить безопасность ресурса, воспользуйтесь одним из интерфейсов:
  • Lookup. Простой в использовании интерфейс. Требует проверки каждого адреса на сервере. Не поддерживает шифрование данных.
  • Update. Интерфейс, требующий сложной реализации. Поддерживает высокую частоту запросов и малое время отклика. Данные, которыми вы обмениваетесь с сервером, зашифрованы.

Lookup

Позволяет проверить URL, отправив запрос на сервер Yandex Safe Browsing.

Преимущества
  • Простая проверка адреса. Отправьте запрос с перечнем адресов — сервер ответит, безопасен ли каждый из них.
Недостатки
  • Отсутствие конфиденциальности. URL передается в незашифрованном виде. Сервер знает, какие адреса пришли от пользователя на проверку.
  • Неопределенное время отклика. Каждый запрос обрабатывается сервером. Время отклика не гарантируется.

Если у вас нет требований к конфиденциальности данных и времени отклика, используйте интерфейс Lookup.

Update

Интерфейс Update позволяет скачать зашифрованную копию списков Safe Browsing и проверять в ней адреса. Поддерживает высокую частоту запросов и малое время отклика. Используется браузерами и платформами для защиты большого числа пользователей.

Преимущества
  • Конфиденциальность. Запрос на сервер передается, только если URL обнаружен в локальной базе небезопасных адресов. URL зашифрован, и сервер не знает, какие именно адреса пришли на проверку.
  • Время отклика. Локальная база представляет собой копию списков Safe Browsing, поэтому нет необходимости обращаться к серверу каждый раз для проверки адреса.
Недостатки
  • Реализация. Необходимо скачать и периодически обновлять копию списков Safe Browsing (представлены в виде хэшей SHA256 переменной длины).
  • Сложная проверка адреса. URL нужно привести к канонической форме, создать несколько выражений для хоста и пути и вычислить хэш SHA256 (для сравнения локальной копии со списком, хранящимся на сервере).

Если вам важна конфиденциальность данных и время отклика, используйте интерфейс Update.