---
title: "Защита регистрации: сигналы визита для форм | Emvero"
description: "Сигналы визита в проверке регистрации. Токен со страницы показывает слишком быструю отправку, повтор и несовпадения и просит подтвердить почту, но не отклоняет регистрацию."
url: https://emvero.io/ru/signup-protection/
language: ru
updated: 2026-10-25
---

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

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

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

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

Связаться с отделом продаж

Документация

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

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

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

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

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

Сниппет из аккаунта добавляет скрытое поле и небольшой скрипт. Когда форма показана, скрипт запрашивает у узла выдачи токен визита и записывает его в поле, а форма отправляет это поле вместе с остальными. Если скрипт заблокирован или узел не ответил, поле остается пустым, и проверка попросит подтвердить почту, а не отклонит регистрацию. В [документации](https://docs.emvero.io/) описаны скрипт, его версия и строки 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 | Сигналы | Рекомендуемое действие |
| --- | --- | --- |
| `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, сниппет для каждого ключа и число соединений, записанных с вашими ключами, по дням. Ключ можно отозвать в любой момент. Чтобы выключить защиту регистрации и удалить ее данные, [напишите нам](https://emvero.io/ru/contact/).

Вопросы

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

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

Она сравнивает визит с запросом на регистрацию. Скрипт на странице получает токен, когда форма показана, а при регистрации ваш сервер передает этот токен вместе с 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-адрес и не идентификатор аккаунта. На время пилота обработку данных посетителей сервисом сигналов регулирует отдельное письменное соглашение.

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

Защита регистрации сейчас в пилоте по приглашению. [Напишите нам](https://emvero.io/ru/contact/), на каком сайте работает ваша форма регистрации и какой объем вы ожидаете. Когда письменное соглашение будет подписано, мы включим защиту в вашем аккаунте. После этого вы создадите ключи страниц и скопируете сниппет в аккаунте.

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

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

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

Связаться с отделом продаж

Документация
