Защита от ботов без правки кода: auto_prepend_file
PHP умеет подключать файл перед каждым скриптом. Так модуль встаёт перед сайтом целиком, а обновления CMS его не затрагивают. Способ для тех, кто не хочет трогать код, и для хостинга с десятками сайтов.
7 дней наблюдения без блокировок; платную защиту можно включить сразу после оплаты. Тарифы и лимиты
Что обычно болит на Любой сайт: auto_prepend_file
- Много сайтов на одном сервере
- CMS, у которой index.php перезаписывается при обновлении
- Нет желания или права править код сайта
- Старые проекты, где входных файлов десятки
Как подключить
-
1
Положите модуль и файл-обёртку
В папку botban/ рядом с botban.php положите prepend.php с вызовом.
<?php // botban/prepend.php if (is_file(__DIR__ . '/botban.php')) { try { require_once __DIR__ . '/botban.php'; BotBan::protect('bb_pk_...', 'bb_sk_...'); } catch (\Throwable $e) { // Сбой модуля — сайт работает без защиты. } } -
2
Apache: .htaccess
Если PHP работает как модуль Apache или через mod_fcgid с разрешённым php_value.
php_value auto_prepend_file "/полный/путь/к/сайту/botban/prepend.php" -
3
PHP-FPM: .user.ini или пул
На виртуальном хостинге обычно доступен .user.ini в корне сайта; на своём сервере — пул FPM.
; .user.ini в корне сайта auto_prepend_file = /полный/путь/к/сайту/botban/prepend.php ; или в пуле PHP-FPM php_admin_value[auto_prepend_file] = /полный/путь/к/сайту/botban/prepend.php -
4
Проверьте журнал
Откройте сайт: визит появится в журнале в течение минуты. Если нет — проверьте путь и что .user.ini подхватился (у FPM на это уходит до 5 минут).
На что обратить внимание
Подключится ко всем скриптам
В том числе к служебным, которые дёргают по расписанию через веб: обмен с 1С, cron-скрипты, выгрузки. Адреса серверов, которые их вызывают, внесите в белый список, а пути чисто внутренних скриптов — в skip_paths.
Статика не считается
Картинки, стили и скрипты модуль не проверяет, даже если они отдаются через PHP.
Какие задачи закрывает подключение
Модуль один, задач несколько: что именно он останавливает на сайте под Любой сайт: auto_prepend_file.