Инструкция по замене reCAPTCHA v3 на ИРИС.

С 1 июля 2025 г. использование Google reCAPTCHA будет нарушением закона

С 1 июля 2025 года в силу вступают поправки в Федеральный закон № 152-ФЗ «О персональных данных»: теперь запрещается первичный сбор персональных данных граждан РФ с помощью зарубежных сервисов, таких как Google reCAPTCHA. Пояснение: при использовании reCAPTCHA данные (IP-адрес, поведенческие характеристики и прочее) передаются и обрабатываются на иностранных серверах, что квалифицируется как трансграничная передача персональных данных.
Ранее требование касалось в первую очередь локализации хранения копий персональных данных на территории РФ. Новые поправки запрещают даже сам первичный сбор данных за границей. Роскомнадзор ещё в 2023 году обращал внимание, что использование CAPTCHA от Google может нарушать законодательство (см. официальное разъяснение).
Следовательно, с 1 июля 2025 г. сайты, обрабатывающие персональные данные (онлайн-формы, регистрация, подписки и т. п.), не должны использовать Google reCAPTCHA, иначе им грозят штрафы или блокировки.

Решение: ТехноСкор ИРИС — альтернатива, соответствующая 152-ФЗ

ИРИС (Интеллектуальный Риск-Индикатор Сессий) — это российская система защиты от ботов и мошенничества, которая:
  • Работает полностью на серверах в РФ;
  • Не передаёт данные за границу;
  • Предоставляет гибкий поведенческий скоринг пользователя;
  • Полностью совместима с законодательством о персональных данных;
  • Легко интегрируется вместо reCAPTCHA.
  • С помощью ИРИС вы сохраните надёжную защиту от ботов и мошенников, не нарушая требований закона.

Руководство по миграции с ReCAPTCHA v3 на ТехноСкор ИРИС

Это подробное руководство поможет перейти с Google ReCAPTCHA v3 на ТехноСкор ИРИС, обеспечивающий расширенную защиту от ботов, мошенничества и киберугроз.

Замечание: ИРИС также поддерживает видимую капчу, Android и iOS, поэтому при необходимости вы сможете заменить ReCAPTCHA v2. В этом документе для краткости рассматривается только переход с v3.

Руководство по миграции с ReCAPTCHA v3 на ТехноСкор ИРИС

Предварительные требования

Перед началом миграции убедитесь, что вы:

  1. Получили учётные данные от Cybertonica:
  • team (идентификатор команды)
  • service_account (имя сервисного аккаунта)
  • secret_key (секретный ключ)
2. Скачали и изучили следующие материалы:

  • «Руководство по встраиванию SDK ИРИС (web)»;
  • «Руководство по API ИРИС» (TechnoScore IRIS API)
3. Подготовили прокси-сервер (при необходимости), чтобы скрыть прямое обращение к удалённым серверам ИРИС.

Соответствие функциональности ReCAPTCHA и ИРИС


Этапы миграции

1. Удаление реализации ReCAPTCHA
На фронтенде:
<!-- Удалите этот скрипт -->
<script src="https://www.google.com/recaptcha/api.js?render=YOUR_SITE_KEY"></script>
<!-- Удалите все вызовы grecaptcha.execute() --> <script> // Было:
grecaptcha.ready(function() { grecaptcha.execute('SITE_KEY', {action: 'submit'}).then(function(token) { // Логика обработки токена
});
});
</script>
На бэкенде:
  • Удалите endpoint /siteverify, куда отправлялся token.
  • Исключите всю логику, связанную с проверкой siteverify.score из потока обработки запросов.
После удаления кода ReCAPTCHA убедитесь, что в проекте не осталось ссылок на Google API (ключи, конфигурации, проверки action).
2. Внедрение SDK ИРИС (web)
Подключите JavaScript-модуль ИРИС на страницу:
<!-- Вставьте в <head> или сразу перед </body> -->
<script src="https://session.technoscore.ru/static/v4.js" charset="utf-8"></script>
<script>
window.onload = function() { // Инициализация SDK ИРИС
const sessionId = AFCYBERTONICA.init({
	team: 'YOUR_TEAM_ID',	// Предоставляется ТехноСкор
serverUrl: "https://your-proxy.example.com",	// Опционально: URL вашего прокси-сервера userId: "OPTIONAL_USER_ID"	// Опционально: идентификатор авторизованног
});
// Передавайте полученный sessionId на бэкенд при выполнении защищённых действий
};
</script>
Замечание: – Если вы используете проксирование (serverUrl), обратитесь в техподдержку ТехноСкор для согласования настроек. – SDK автоматически собирает данные о поведении пользователя и возвращает session_id сразу после инициализации.
3. Оценка риска на стороне сервера

3.1. Подключение Python-клиента В качестве примера покажем, как сгенерировать JWT и вызвать метод score_session. Полностью «настроенный» класс может выглядеть так:
import requests
import jwt
import time
class IrisAPI:
def __init__(self, team: str, service_account: str, secret_key: str):
self.team = team
self.service_account = service_account
self.secret_key = secret_key
# Базовый URL API ИРИС
self.base_url = "https://session.technoscore.ru/api/v3"
def _generate_jwt(self) -> str:
"""Генерация JWT-токена для аутентификации."""
payload = {
'iss': self.team,
'sub': self.service_account,
'exp': int(time.time()) + 300 # Срок действия JWT: 5 минут
}
return jwt.encode(payload, self.secret_key, algorithm='HS256')
def score_session(self, session_id: str, user_id: str = None) -> dict:
"""Получение оценки риска сеанса (session_id)."""
headers = {
'Authorization': f'Bearer {self._generate_jwt()}',
'Content-Type': 'application/json'
}
payload = {
'session_id': session_id,
'enable': ['features', 'user'] # Запрашиваем расширенные данные (alert и features)
}
if user_id:
payload['user_id'] = user_id
response = requests.post(
f"{self.base_url}/score_session",
json=payload,
headers=headers
)
response.raise_for_status()
return response.json()
В этом примере:
  1. Мы генерируем JWT-токен на основе team, service_account и secret_key.
  2. Передаём заголовок Authorization: Bearer <JWT>.
  3. Вызываем метод /api/v3/score_session, передавая session_id и опционально user_id.
  4. Получаем JSON-ответ, где alerts и features описывают рисковый профиль пользователя.
Примечание: Обратите внимание на домен session.technoscore.ru (или согласованный в договоре). Если у вас другой хост (например, session.cybertonica.ru), используйте его вместо technoscore.ru.
3.2. Логика оценки риска
На основе данных alerts и features можно реализовать свою функцию, определяющую, считается ли сеанс низко-, средне- или высокорисковым.

Пример базовой логики:
def evaluate_risk(session_data: dict) -> str:
"""
Определение уровня риска на основе данных сеанса.
Возвращает: 'low', 'medium' или 'high'.
"""
alerts = session_data.get('alerts', [])
features = session_data.get('features', {})
# Правила для оповещений высокого риска
high_risk_alerts = {
'BOT': 0.7,
'ACCOUNT_TAKEOVER': 0.8,
'WEB_INJECT': 0.6,
'REMOTE_ACCESS_TOOL': 0.7
}
# Если есть alert высокого риска с confidence >= порога, считаем 'high'
for alert in alerts:
threshold = high_risk_alerts.get(alert['name'])
if threshold and alert['confidence'] >= threshold:
return 'high'
# Оценка по скорости активности (feature velocity_ip_1h)
if features.get('velocity_ip_1h', 0) > 50:
return 'medium'
# Если есть позитивный сигнал (GOOD) с высоким confidence
if any(a['name'] == 'GOOD' and a['confidence'] > 0.8 for a in alerts):
return 'low'
# По умолчанию возвращаем 'medium'
return 'medium'
Варианты реакций в зависимости от уровня риска:
  1. High: требовать дополнительную верификацию (например, email, SMS или proof-ofwork), временно блокировать или замедлять действия.
  2. Medium: показывать дополнительную капчу или повышать вайтлист-пороги.
  3. Low: позволить действие без ограничений.

Рекомендации после миграции

1. Настройка мониторинга

  • Отслеживайте время отклика API ИРИС и процент успешных вызовов.
  • Анализируйте количество срабатываний по типам alerts.
  • Стройте дашборды ключевых метрик (сессии, средний уровень риска, число фальшивых срабатываний).

2. Настройка правил

  • Подбирайте пороги confidence для оповещений, исходя из реальных данных вашего трафика.
  • Создавайте сложные правила, совмещая несколько типов alerts и характеристик (features).
  • Применяйте правила на основе аномалий активности (например, резкие скачки числа запросов с одного IP).

3. Анализ данных

  • Периодически просматривайте логи сеансов и выявляйте новые паттерны мошенничества.
  • Сравнивайте данные ИРИС с собственными метриками транзакционной активности.
  • Обновляйте внутренние скоринговые алгоритмы при появлении новых угроз.

Финальный контрольный список

  • Полностью удалён весь код, связанный с Google reCAPTCHA.

  • Подключён SDK ИРИС (FraudLock) на фронтенде.

  • Реализовано отслеживание session_id и передача его на бэкенд.

  • Настроена серверная проверка через score_session.

  • Настроен мониторинг ключевых метрик и оповещений.

Если нужна персональная помощь при миграции или консультация по настройке ИРИС, обратитесь в команду поддержки ТехноСкор ИРИС: support@technoscore.ru

Оставьте ваши контакты и мы расскажем подробнее о нашем продукте и возможностях его использования