Проверка email-адресов и Domain Intelligence используют общий баланс кредитов. Как работают кредиты

Начать бесплатно

Защита регистрации

Проверяйте визит, а не только адрес.

Скрипт на странице регистрации получает токен визита, пока форма открыта. Ваш сервер передает этот токен в Emvero вместе с адресом и данными соединения посетителя и получает одно рекомендуемое действие для регистрации с кодами, которые его объясняют.

Сами по себе сигналы никогда не отклоняют регистрацию. Если находка поднимает решение, регистрацию, которую можно было бы пропустить, пропускают с подтверждением почты. Отклонить адрес может только проверка email.

Пилот по приглашению · Серверный API · 1 кредит за оцененную проверку

Защита регистрации добавляет к проверке адреса сигналы о самом визите. Она нужна там, где адрес выглядит нормально, но запрос не совпадает с визитом, из которого он должен был прийти: форму отправили, не открывая страницу, токен взяли из прежней сессии или форму отправили через мгновение после загрузки страницы.

Сигналы не устанавливают личность человека и не доказывают злоупотребление. Каждая находка — это свидетельство для ваших собственных правил, а рекомендуемое действие никогда не строже подтверждения почты.

Добавьте токен на страницу регистрации

Откройте в аккаунте раздел Защита регистрации и создайте ключ страницы для origin вашей страницы регистрации, например https://example.com. Ключ страницы не секрет: его видит любой, кто открыл страницу, и работает он только с тех origin, которые указаны у ключа.

Сниппет из аккаунта добавляет скрытое поле и небольшой скрипт. Когда форма показана, скрипт запрашивает у узла выдачи токен визита и записывает его в поле, а форма отправляет это поле вместе с остальными. Если скрипт заблокирован или узел не ответил, поле остается пустым, и проверка попросит подтвердить почту, а не отклонит регистрацию. В документации описаны скрипт, его версия и строки Content-Security-Policy для вашей страницы.

Передайте токен со своего сервера

При регистрации ваш сервер передает токен вместе с адресом и данными соединения посетителя в POST /v1/signup-checks. Для этого нужен тот же API-ключ, что и для проверки email, и он остается на сервере.

curl -sS https://api.emvero.tech/v1/signup-checks \
  -H "Authorization: Bearer emv_your_credential" \
  -H "Content-Type: application/json" \
  -d '{"email":"ada@example.com","token":"<значение поля fp_token>","ip":"203.0.113.7","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) ..."}'

Client Hints, если ваш сервер их получает, передаются в объекте client_hints. В ответе есть одно action для регистрации, коды signal_codes, которые его подняли, полный результат проверки email и сигналы. Ниже приведены отдельные поля примерного ответа. Это иллюстрация, а не результат реальной проверки:

{
  "id": "0b8e6f2a-4d1c-4f7e-9a3b-2c5d6e7f8a90",
  "action": "allow_with_email_confirmation",
  "signal_codes": ["fp_fast_submission"],
  "email": { "status": "deliverable", "action": "allow", "reason_codes": [] },
  "signals": {
    "status": "evaluated",
    "findings": [
      { "code": "fp_fast_submission", "class": "binding", "default_raises": true },
      { "code": "fp_network_vpn", "class": "identity", "default_raises": false }
    ]
  }
}

Адрес здесь доставляемый, и одна проверка email пропустила бы его. Но форму отправили почти сразу после того, как страница получила токен, а такая находка поднимает решение. Поэтому action равно allow_with_email_confirmation, а signal_codes называет причину. Посетитель к тому же был в VPN: эта находка показана в ответе, но сама по себе решение не поднимает.

Если адрес вы уже проверяете отдельно, POST /v1/signup-signals принимает тот же запрос без email и отвечает так, как если бы проверка email вернула allow.

Как сигналы меняют решение

Сигналы могут поднять allow до allow_with_email_confirmation. Они никогда не поднимают решение до reject и не смягчают решение проверки email.

Как сочетаются проверка email и сигналы
Проверка emailСигналыРекомендуемое действие
rejectЛюбыеreject
allow_with_email_confirmationЛюбыеallow_with_email_confirmation
allowОценены, ни одна находка не поднимает решениеallow
allowОценены, находка поднимает решениеallow_with_email_confirmation
allowТокен нельзя использоватьallow_with_email_confirmation
allowСигналы недоступныallow

Если проверка email еще в pending, сигналы уже окончательны, а action равно allow_with_email_confirmation. Запросите GET /v1/signup-checks/{id} через email.retry_after_ms: опрос бесплатный, и действие пересчитывается по завершенной проверке email и сохраненным кодам сигналов.

На что смотрят сигналы

  • Токен. Решение поднимается, если токена нет, он истек, изменен, выдан для страниц другого аккаунта или предъявлен второй раз.
  • Визит и запрос. Решение поднимается, если IP-адрес или браузер при отправке отличаются от тех, кому выдан токен, или если форму отправили почти сразу после первого токена.
  • Сеть и заявления браузера. VPN, Tor, публичные прокси, частные ретрансляторы, хостинговые сети, а также часовой пояс или платформа, которые не сходятся с соединением, попадают в ответ для ваших собственных правил. Сами по себе они решение не поднимают.

У каждой находки есть default_raises: это поле говорит, поднимает ли она решение. Находки, которые решение не поднимают, тоже остаются в результате, и ваше приложение может применить к ним свои правила. Полный список кодов приведен в документации.

Сервис сигналов также собирает список адресов и сетей, которые недавно работали на ваших страницах как посредники. GET /v1/relay-list отдает его бесплатно, с лимитом запросов в минуту. По нему можно проверить запросы, которые не открывали вашу страницу, например обращение мобильного приложения к вашему API.

Сколько стоит проверка

Кредиты за сигналы одной проверки
Результат сигналовКредиты
Токен оценен (evaluated)1 кредит
Токен нельзя использовать (token_unusable)0 кредитов
Сигналы недоступны (unavailable)0 кредитов

Совмещенная проверка дополнительно списывает проверку email так же, как POST /v1/verifications. Выдача токенов, опрос незавершенной проверки и список посредников бесплатны. Все списания идут с общего баланса аккаунта. Если баланса не хватает, проверка отвечает 402 и не начинает работу.

Что происходит с данными посетителей

Ваш сервер передает токен, IP-адрес посетителя, User-Agent и Client Hints. Emvero отправляет их в сервис сигналов для оценки и не хранит ни в журналах, ни в базе; в сохраненном результате нет ни IP-адреса, ни его части. Сервис сигналов получает код клиента вашего аккаунта, но никогда не получает email-адрес или идентификатор аккаунта. Результаты хранятся 30 дней, как и результаты проверки email.

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

Управление в аккаунте

Когда защита включена, в аккаунте видны ее состояние, ключи страниц с их origin, сниппет для каждого ключа и число соединений, записанных с вашими ключами, по дням. Ключ можно отозвать в любой момент. Чтобы выключить защиту регистрации и удалить ее данные, напишите нам.

Вопросы

Часто спрашивают.

Что проверяет защита регистрации?

Она сравнивает визит с запросом на регистрацию. Скрипт на странице получает токен, когда форма показана, а при регистрации ваш сервер передает этот токен вместе с IP-адресом посетителя, User-Agent и Client Hints. Находки показывают, например, что форму отправили почти сразу после выдачи токена, что IP-адрес или браузер отличаются от визита или что токена нет, он истек, изменен, выдан для страниц другого аккаунта или предъявлен второй раз.

Могут ли сигналы отклонить регистрацию?

Нет. Сигналы никогда не поднимают решение до reject и не смягчают решение проверки email. Если находка поднимает решение, allow становится allow_with_email_confirmation. Вернуть reject может только проверка email.

Сколько стоит проверка?

Сигналы стоят 1 кредит, когда токен оценен, и ничего не стоят, если токен использовать нельзя или сигналы недоступны. Совмещенная проверка дополнительно списывает проверку email так же, как POST /v1/verifications. Выдача токенов, опрос незавершенной проверки и список посредников бесплатны.

Что будет, если скрипт заблокирован?

Скрытое поле останется пустым, а проверка вернет fp_token_absent, и решение поднимется до подтверждения почты. Если не ответит сервис сигналов, signals.status будет unavailable: решение примет одна проверка email, а сигналы не спишутся.

Какие данные посетителя использует проверка?

Токен, IP-адрес посетителя, User-Agent и Client Hints, которые передает ваш сервер. Emvero отправляет их в сервис сигналов для проверки и не хранит ни в журналах, ни в базе. Сервис сигналов получает код клиента вашего аккаунта, но не email-адрес и не идентификатор аккаунта. На время пилота обработку данных посетителей сервисом сигналов регулирует отдельное письменное соглашение.

Как получить доступ?

Защита регистрации сейчас в пилоте по приглашению. Напишите нам, на каком сайте работает ваша форма регистрации и какой объем вы ожидаете. Когда письменное соглашение будет подписано, мы включим защиту в вашем аккаунте. После этого вы создадите ключи страниц и скопируете сниппет в аккаунте.

Пилот по приглашению

Подайте заявку на участие в пилоте.

Пока идет пилот, защиту регистрации включают по приглашению. Расскажите, на каком сайте работает ваша форма регистрации и сколько регистраций вы ждете. Мы включим защиту в вашем аккаунте, когда будет подписано отдельное письменное соглашение.