BotBan

Защита от ботов на Symfony

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

Что обычно болит на Symfony

  • Перебор паролей и токенов на маршрутах авторизации
  • Выкачивание данных через публичный API
  • Спам через формы и публичные эндпоинты
  • Нагрузка от парсеров на тяжёлые страницы

Как подключить

  1. 1

    Положите модуль

    Папка botban/ уровнем выше public/, чтобы файл не был доступен снаружи.

  2. 2

    Добавьте вызов в public/index.php

    До подключения autoload_runtime.php. Ключи удобно держать в переменных окружения.

    <?php
    // public/index.php
    require_once __DIR__ . '/../botban/botban.php';
    
    BotBan::protect(\$_ENV['BOTBAN_KEY'] ?? '', \$_ENV['BOTBAN_SECRET'] ?? '');
    
    require_once dirname(__DIR__) . '/vendor/autoload_runtime.php';
  3. 3

    Исключите служебные маршруты

    Вебхуки, health-check и внутренние API добавьте в белый список путей или в skip_paths модуля.

На что обратить внимание

В профилировщике модуля не видно

Он отрабатывает до ядра Symfony, поэтому не попадает ни в профилировщик, ни в логи приложения. Это нормально.

За балансировщиком включите доверие к прокси

Иначе все посетители будут выглядеть одним адресом. Параметр trusted_proxies в вызове protect().

Другие системы

Посмотрите, сколько ботов ходит по вашему сайту

Первую неделю мы никого не блокируем — только считаем и показываем. Решение включать защиту останется за вами.

Подключить бесплатно

Без карты. 30 000 визитов в месяц бесплатно.