
Спам-боты — одна из серьёзнейших угроз современному Интернету. Они бродят по сайтам в поисках открытых форм, оставляя за собой мусорный контент, вредоносные ссылки и нежелательный трафик. Без надлежащей защиты даже простая контактная форма может превратиться в источник спама, угрозы безопасности и напрасной траты ресурсов. Именно поэтому Drupal предлагает целый спектр инструментов для выявления и блокировки спам-ботов.
Сегодня мы рассмотрим технологии, позоляющие защититься от спам-атак: CAPTCHA и reCAPTCHA. Погрузимся в принципы их работы, ключевые различия, познакомимся с модулями Drupal, позволяющими легко добавить их на ваш сайт, а также с их основными настройками.
Что такое CAPTCHA и reCAPTCHA?
CAPTCHA и reCAPTCHA — это системы безопасности, различающие реальных людей и ботов посредством теста, предъявляемого при заполнении формы. Цель обеих технологий ярко отражена в полном определении CAPTCHA: "Полный публичный автоматизированный тест Тьюринга для отделения компьютеров от людей".
Тест усложняет жизнь ботам, оставаясь доступным для прохождения людьми. В зависимости от конкретной технологии, он может вообще не требовать действий от человека, работая незаметно в фоновом режиме. Подробнее поговорим об этом далее.
Оба решения были разработаны в Университете Карнеги-Меллона соответственно в 2000 и 2007 годах. Позже reCAPTCHA была приобретена Google в 2009 году и начала развиваться самостоятельно.
В чём разница между CAPTCHA и reCAPTCHA?
CAPTCHA — общий концепт тестов, используемых для идентификации людей и отделение их от ботов, в то время как reCAPTCHA — реализация Google, которая заметно эволюционировала с течением времени. На практике они часто рассматриваются как две разные технологии из-за различных подходов:
- CAPTCHA — традиционная система, основанная на задаче. Она ставит перед пользователем видимое задание, например, ввести искажённый текст с изображения, решить простую арифметическую задачу или ответить на вопрос. Каждому пользователю нужно пройти это испытание, чтобы продолжить.
- reCAPTCHA — более современная технология, работающая на анализе поведения. Она незаметно следит за действиями пользователя, решая, является ли он человеком. Чаще всего пользователи видят лишь простую галочку ("Я не робот") или вовсе ничего, а дополнительное испытание появляется только в подозрительных ситуациях, например, выделение изображений.

Типы CAPTCHA
- Текстовая: ввод искажённых букв и чисел.
- Математическая: простые расчёты (например, 7 + 3).
- Изображения: выбор изображений, соответствующих образцу или объекту.
- Вопросы-загадки: заранее созданные администратором вопросы с ответами (например, "Какой цвет неба?").
Версии reCAPTCHA
- v1: устаревшая версия с изображением искажённого текста, снятая с эксплуатации в 2018 году.
- v2: знаменитая галочка "Я не робот". Обычно достаточно одного клика, но при подозрительном поведении пользователя возникает дополнительная задача, например, выбор изображений.
- v2 ("Невидимая защита"): работает скрыто, без видимости чекбокса. Если поведение пользователя покажется подозрительным, проверка инициируется автоматически.
- v2 (для Android): предоставляет нативные API для мобильных приложений.
- v3: полностью невидима и основана на оценивании риска (баллы от 0.0 до 1.0), давая сайту право решать, когда запрашивать дополнительную верификацию. В отличие от предыдущих версий, здесь проверка никогда не показывается пользователю.
Обратите внимание: тестирование на основе выбора изображений получило негативную реакцию, так как оказалось неудобным для пользователей, и тенденция сейчас направлена на уменьшение необходимого взаимодействия.
Научились ли боты обходить CAPTCHA?
Современные боты способны имитировать человеческое поведение, и с развитием искусственного интеллекта они становятся всё умнее. Естественно задать вопрос: могут ли боты успешно проходить CAPTCHA-тесты? Скорее всего, вы видели мем с роботом, легко ставящим галочку "Я не робот", и в нём есть доля истины. Со временем боты научились преодолевать многие анти-спам тесты, например:
- OCR (оптическое распознавание символов) иногда способно читать искажённый текст.
- Машинное обучение помогает распознавать объекты на изображениях (например, светофоры, автобусы или пешеходные переходы).
- Бот, симулирующий человеческое поведение, может обмануть системы, анализирующие движения мыши, временные интервалы или шаблоны просмотра.
- Продвинутые боты, такие как AkiraBot, используют искусственный интеллект для преодоления CAPTCHA.
- Популярные инструменты автоматизации, такие как Playwright и Selenium, могут имитировать взаимодействие с браузером, включая прохождение анти-спам тестов.
- Существуют даже сервисы ("CAPTCHA фермы"), предлагающие услуги по решению задач людям за деньги.
Но беспокоиться не стоит, CAPTCHA всё ещё способна сильно облегчить вашу защиту:
- Блокировка большинства ботов. Большинство массовых попыток рассылки спама и регистраций провалится.
- Повышение затрат атаки. Если злоумышленнику придётся оплачивать услугу по решению головоломок, кампания становится дороже и менее привлекательной.
- Дополнительный слой в общей стратегии безопасности. Совместно с такими методами, как Honeypot, ограничение частоты запросов, правила фаервола, API-защита и другие техники, CAPTCHA становится гораздо эффективнее.
Топ модулей Drupal для CAPTCHA и reCAPTCHA
CAPTCHA
Начнём с главного модуля в этой экосистеме. Он предоставляет инфраструктуру для добавления видимых тестов с запросом-отзывом в онлайн-формы. Из коробки доступны математические и визуальные испытания.
Есть также ряд дополнительных модулей, расширяющих его возможности, дополняя формами испытаний для защиты форм от спама в Drupal. Далее обсудим некоторые из них.

CAPTCHA Pack
Этот модуль добавляет дополнительные типы тестов, такие как настраиваемые математические задачи, текстовые задачи с поиском потерянного символа или выбором правильного слова из фразы.
Captcha Riddler
С этим модулем можно создавать собственные вопросы и ответы для тестирования.
CAPTCHA After
Данный инструмент показывает тесты только после многократных неудачных попыток отправить форму, уменьшая трение для настоящих пользователей.
Hidden CAPTCHA
С помощью этого модуля можно создать скрытую ловушку, которую обычно заполняют боты, а люди оставляют незаполненной.
reCAPTCHA
Этот модуль подключает формы Drupal к службе Google reCAPTCHA. Он поддерживает версию v2, а интеграция с v3 находится в стадии разработки. Модуль берёт на себя общение с Google.
reCAPTCHA v3
Этот модуль предназначен специально для интеграции третьей версии reCAPTCHA. Он позволяет настроить действия на основании полученных баллов и установить резервные испытания, если первичное тестирование не даст уверенного результата.
Simple Google reCAPTCHA
Встречайте ещё один модуль, интегрирующий службу защиты от спама Google с сайтами на Drupal. Поддерживает обе версии — v2 и v3.
Cloudflare Turnstile
Этот инструмент использует службу Turnstile от Cloudflare для защиты форм Drupal от спама.
CAPTCHA: Friendly Captcha
Следующим идёт модуль Drupal, предлагающий удобную и приватную анти-спам защиту через стороннюю JavaScript-библиотеку. Он обеспечивает соблюдение требований GDPR и доступность.
hCaptcha
Этот модуль интегрирует платформу, ориентированную на конфиденциальность, защищающую ваш сайт от спам-ботов и злоупотреблений. Он включает в себя детектирование ботов с помощью искусственного интеллекта, балльную оценку рисков и многое другое.
Настройка CAPTCHA в Drupal
Настройка классической CAPTCHA на вашем сайте сводится к выполнению трёх основных шагов, четвёртый шаг необязателен и относится к дополнительным настройкам.
Шаг 1: Установите модуль
Установите модуль CAPTCHA на своём сайте Drupal. Рекомендуемый способ установки модулей Drupal — через Composer:
composer require drupal/captcha
Используйте панель администратора Drupal (вкладка "Расширения") для активации основного модуля и дополнительного подмодуля Image CAPTCHA (если интересуют визуальные проверки).

Шаг 2: Выберите тип стандартной проверки
Сообщите Drupal, какую проверку использовать по умолчанию, если не установлено специальное правило для конкретной формы. Найдите эту настройку в меню Конфигурация → Пользователи → Настройки CAPTCHA.
Если подмодуль Image CAPTCHA отключён, доступны только математические проверки. Если он включён, у вас появится выбор между математическими и визуальными проверками. С дополнительными модулями вы получите ещё больше опций. Выберите подходящий тип проверки из выпадающего меню и сохраните конфигурацию.

Шаг 3: Активируйте CAPTCHA для форм
Используйте вкладку "Места использования CAPTCHA" для включения защиты от спама для конкретных форм. По умолчанию защита отключена для всех форм. Здесь же можно настроить индивидуальные проверки для каждой формы, нажав "Редактировать" в меню "Операции".

Шаг 4: Настройте CAPTCHA
На странице настроек вы можете тонко настроить различные аспекты поведения защитного механизма:
- Сообщения, которые увидят пользователи.
- Детали испытания, такие как шрифт, цвета, уровень искажения и т.д.
- Чувствительность к регистру при проверке.
- Список белых IP-адресов, для которых желательно исключить проверку на спам.
- И многое другое.

Настройка reCAPTCHA в Drupal
Давай теперь посмотрим, как подключить последнюю версию бесплатной службы Google с помощью специального модуля Drupal.
Шаг 1: Установите модуль reCAPTCHA v3
Установите модуль reCAPTCHA v3 на свой сайт Drupal. Он зависит от модуля CAPTCHA и частично использует общие элементы интерфейса настроек. Установка через Composer:
composer require drupal/recaptcha_v3
Затем перейдите на вкладку "Расширения" панели администратора Drupal и активируйте модуль.
Шаг 2: Получите ключи от Google
Перейдите в Админ-панель Google reCAPTCHA и зарегистрируйте свой сайт.
- Выберите тип v3.
- Добавьте ярлык для своего сайта (например, "Мой Сайт") и доменное имя (например, "my-website.com").
- Согласитесь с правилами и нажмите "Отправить".
Google создаст для вас Site Key (Ключ сайта) и Secret Key (Секретный ключ). Держите их под рукой.

Шаг 3: Добавьте ключи Google в Drupal
Перейдите в Конфигурация → Пользователи → Настройки CAPTCHA → reCAPTCHA v3.
- Введите полученный от Google Site Key и Secret Key.
- Выберите тип резервный вариант проверки по умолчанию.
- Настройте сообщение об ошибке, которое увидят пользователи.
Нажмите "Сохранить конфигурацию".

Шаг 4: Настройте действие reCAPTCHA
На вкладке "Действия reCAPTCHA v3" вы сможете настроить действия. Действия определяют, как поведёт себя ваш тест на спам в конкретной форме.
Это означает, что, создав v3-действие и назначив его форме, вы говорите Drupal: "Пожалуйста, выполни этот незаметный анализ reCAPTCHA на этой форме, и если балл слишком низкий, покажи резервный вариант проверки".
Каждое действие включает следующие настройки:
- Ярлык: название для идентификации действия (например, "Проверка входа").
- Порог: минимальный балл, при котором считается, что пользователь — человек (0.0 — бот, 1.0 — человек). Значение по умолчанию 0.5 вполне подойдёт.
- Резервный вариант проверки: то, что произойдёт, если балл слишком мал. Обычно пользователи увидят обычную CAPTCHA.

Шаг 5: Назначьте v3 конкретным формам
Подобно тому, как мы делали это с предыдущим модулем, используйте вкладку "Места использованияы CAPTCHA", чтобы включить защиту от спама с помощью v3 для конкретных форм. Нажмите "Редактировать", чтобы назначить нужной форме действие, которое вы только что создали (например, "Проверка входа"). Сохраните результат.

Заключение
Добавление CAPTCHA или reCAPTCHA на ваш сайт — это прямой путь к усилению защиты форм от спама. Хотя никакой инструмент не гарантирует стопроцентную безопасность, эти технологии значительно облегчат поддержание чистоты и надёжности ваших форм. В комбинации с другими методами они станут важной частью комплексной стратегии безопасности вашего сайта на Drupal.