Защита Drupal от ботов
Drupal ставят на серьёзные проекты, и трафика туда идёт много — как живого, так и автоматического. Формы, регистрация и стандартный адрес входа собирают ботов со всего интернета.
Что обычно болит на Drupal
- Спам через Webform, комментарии и регистрацию
- Перебор паролей на /user/login
- Сканирование известных путей модулей
- Выкачивание материалов и узлов по номерам
Как подключить
-
1
Положите модуль
Папка botban/ рядом с index.php. В composer-шаблоне это каталог web/.
-
2
Добавьте вызов в index.php
До подключения autoload.php. Страницы из кэша Drupal тоже проходят через index.php, так что модуль увидит все запросы.
<?php require_once __DIR__ . '/botban/botban.php'; BotBan::protect('bb_pk_...', 'bb_sk_...'); // дальше обычный код Drupal \$autoloader = require_once 'autoload.php'; -
3
Исключите служебные пути
Cron по адресу /cron/{ключ}, JSON:API, если им пользуются ваши приложения, и вебхуки оплаты — в белый список путей.
На что обратить внимание
Обновления Drupal не трогают index.php
Файл принадлежит проекту, а не ядру, поэтому после обновления строка остаётся на месте.
Внешний кэш не видит модуль
Если перед сайтом Varnish или CDN, часть страниц отдаётся без PHP. Для таких посетителей подключите JS-скрипт в дополнение к модулю.