Защита от ботов без правки кода: auto_prepend_file
PHP умеет подключать файл перед каждым скриптом. Так модуль встаёт перед сайтом целиком, а обновления CMS его не затрагивают. Способ для тех, кто не хочет трогать код, и для хостинга с десятками сайтов.
Что обычно болит на Любой сайт: auto_prepend_file
- Много сайтов на одном сервере
- CMS, у которой index.php перезаписывается при обновлении
- Нет желания или права править код сайта
- Старые проекты, где входных файлов десятки
Как подключить
-
1
Положите модуль и файл-обёртку
В папку botban/ рядом с botban.php положите prepend.php с вызовом.
<?php // botban/prepend.php require_once __DIR__ . '/botban.php'; BotBan::protect('bb_pk_...', 'bb_sk_...'); -
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.