Защита от спама форм на Drupal сайте: Гайд по CAPTCHA и reCAPTCHA

alexei20/11/2025 - 08:36
Защита от спама форм на Drupal сайте: Гайд по CAPTCHA и reCAPTCHA

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

Вкладка "Расширения" с модулем CAPTCHA и его подмодулем
Вкладка "Расширения" с модулем 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 (Секретный ключ). Держите их под рукой.

Регистрация сайта в админ-панели Google reCAPTCHA
Регистрация сайта в админ-панели Google reCAPTCHA

Шаг 3: Добавьте ключи Google в Drupal

Перейдите в Конфигурация → Пользователи → Настройки CAPTCHA → reCAPTCHA v3.

  • Введите полученный от Google Site Key и Secret Key.
  • Выберите тип резервный вариант проверки по умолчанию.
  • Настройте сообщение об ошибке, которое увидят пользователи.

Нажмите "Сохранить конфигурацию".

Ввод ключа сайта и секретного ключа от v3 на вашем сайте Drupal
Ввод ключа сайта и секретного ключа от v3 на вашем сайте Drupal

Шаг 4: Настройте действие reCAPTCHA

На вкладке "Действия reCAPTCHA v3" вы сможете настроить действия. Действия определяют, как поведёт себя ваш тест на спам в конкретной форме.

Это означает, что, создав v3-действие и назначив его форме, вы говорите Drupal: "Пожалуйста, выполни этот незаметный анализ reCAPTCHA на этой форме, и если балл слишком низкий, покажи резервный вариант проверки".

Каждое действие включает следующие настройки:

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

Шаг 5: Назначьте v3 конкретным формам

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

Активация защиты от спама Google v3 в формах Drupal
Активация защиты от спама Google v3 в формах Drupal

Заключение

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