BotBan Защита сайта от ботов
Попробовать
Меню
BotBan Защита сайта от ботов
Тема оформления

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

Для самописного приложения есть два способа подключения, и выбор зависит от того, нужен ли вам доступ к решению внутри кода.

7 дней наблюдения без блокировок; платную защиту можно включить сразу после оплаты. Тарифы и лимиты

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

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

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

  1. 1

    Способ первый: до фреймворка

    Вызов в public/index.php до подключения автозагрузчика. Бот не дойдёт ни до маршрутизации, ни до контейнера — экономия максимальная. Ключи — со страницы сайта в кабинете: .env и функция env() здесь ещё недоступны.

    <?php
    // public/index.php
    if (is_file(__DIR__ . '/../botban/botban.php')) {
        try {
            require_once __DIR__ . '/../botban/botban.php';
            BotBan::protect('bb_pk_...', 'bb_sk_...');
        } catch (\Throwable $e) {
            // Сбой модуля — сайт работает без защиты.
        }
    }
    
    require __DIR__ . '/../vendor/autoload.php';
  2. 2

    Способ второй: middleware

    Для приложений под Octane, RoadRunner, Swoole или FrankenPHP. Там index.php выполняется один раз при запуске воркера, а не на каждый запрос. Метод BotBan::check() из модуля 1.4.11 ничего не выводит сам и возвращает ответ: middleware отдаёт его вместо страницы или пропускает запрос дальше. Готовый класс приведён в базе знаний, в статье о подключении PHP-модуля.

  3. 3

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

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

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

Первый способ быстрее

Он отсекает бота до загрузки фреймворка. Разница на тяжёлом приложении заметная: не выполняются провайдеры, не поднимается соединение с базой.

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

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

Модуль один, задач несколько: что именно он останавливает на сайте под Laravel.

Пошагово в документации

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

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

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

Подключить бесплатно Без карты. 7 дней наблюдения за каждым сайтом.

Уже проверено 30 212 794 запросов, остановлено 5 312 050