Часто задаваемые вопросы
Короткие ответы по установке, режимам защиты, логам, CMS и ограничениям AWAF.
Что делает AWAF
AWAF подключается к PHP-сайту и проверяет посетителей по техническим и поведенческим признакам: IP, URL, User-Agent, Referer, ASN, fingerprint, протокол, FPS и другим правилам. Подозрительный трафик можно заблокировать или отправить на капчу.
Для кого подходит
Проект рассчитан на PHP-сайты и популярные CMS: WordPress, Joomla, 1С-Битрикс, OpenCart, Drupal, MODX, Netcat и самописные проекты. Нужны PHP 5.6.4 или новее, SQLite для ASN-списков и права записи в logs/, cache/, lists/.
Куда устанавливать и как подключать
Обычно AWAF размещают в /antibot/ в корне сайта и подключают до вывода HTML через require_once с путём к /antibot/index.php.
require_once $_SERVER['DOCUMENT_ROOT'].'/antibot/index.php';CAPTCHA или BLOCK
BLOCK сразу закрывает запрос и подходит для уверенных правил. CAPTCHA мягче: её лучше выбирать для спорных сигналов, мобильных браузеров, RDP-пользователей, FPS-проверок и первых дней внедрения.
Как работают списки
Разрешающие, блокирующие и captcha-списки лежат в lists/. Обычно используются whitelist_ip, blacklist_ip, whitelist_url, blacklist_uri, captcha_uri, whitelist_useragent, captcha_useragent, whitelist_asn, blacklist_asn и captcha_asn. Делайте исключения точными, чтобы не выключать защиту целиком.
Сайт за proxy, CDN или Cloudflare
Если все посетители видны как один IP, настройте header_proxy и передавайте реальный IP, протокол и HTTP-версию из доверенных заголовков. Для nginx это часто X-Real-IP и X-Forwarded-Proto, для Cloudflare — HTTP_CF_CONNECTING_IP и HTTP_X_FORWARDED_PROTO.
Яндекс, индексация и ASN
Для поисковых роботов используйте правила indexbot_rules и проверяйте PTR. Для сетей хостеров и подозрительных площадок можно применять ASN-списки, но сначала проверяйте влияние на реальные аудитории и сервисы индексации.
Логи, RayID и debug
RayID на странице блокировки связывает обращение пользователя с записью в logs/antibot.log. Debug полезен при внедрении и расследовании, но постоянное подробное логирование увеличивает запись на диск.
Почему растёт папка cache
На сайтах с большим количеством бот-трафика папка cache может быстро расти из-за большого числа проверок и повторных обращений.
cache/dns хранит кеш PTR/DNS-запросов. Он нужен для определения легальных поисковых ботов. Эту папку можно чистить регулярно, например раз в час или реже. Не стоит очищать её слишком часто: без кеша AWAF будет чаще обращаться к DNS-серверам, и хостер может ограничить такие запросы.
cache/sessid хранит сессии пользователей AWSESSION, по аналогии с PHPSESSID. Эту папку можно чистить от файлов старше значения expire_days, а также от пустых файлов. Если в секции [cookie] используется storage_type = cookie, папку cache/sessid можно очищать полностью, потому что метка пользователя хранится в cookie.
[cookie]
cookie_name = 9d59347 ; изменение значения позволяет сбросить метку всем пользователям
expire_days = 3 ; срок действия метки в днях
storage_type = cookie ; тип хранилища для метки: cookie или awsessionЧто делать при ложной блокировке
- Попросите у пользователя RayID и IP со страницы блокировки.
- Найдите запись в logs/antibot.log и конкретный фильтр.
- Удалите IP из blacklist_ip или добавьте узкое исключение в whitelist_*.
- Если правило спорное, временно переключите его с BLOCK на CAPTCHA.
Обновления
Исходный код и обновления публикуются в GitHub: https://github.com/githubniko/antibot. Встроенный sysupdate не заменяет config.ini, lists/ и logs/, но перед обновлением всё равно сохраняйте рабочую конфигурацию.
Метрика и аналитика
Для передачи IP, fingerprint и referrer стандартный код Яндекс Метрики заменяется AWAF Tags, а идентификатор счётчика задаётся в config.ini через metrika_site.
CMS-совместимость
Для CMS предпочтительно подключать AWAF через .htaccess auto_prepend_file, если сервер поддерживает php_value. Если способ недоступен, используйте .user.ini, vhost/pool или раннюю точку входа; для MODX config.core.php остаётся специальным fallback. Для 1С-Битрикс отдельно проверяйте публичные страницы, админку, AJAX, cron, обмены и прямые PHP endpoint-ы.
Это защита от DDoS?
AWAF помогает снижать бот-нагрузку на уровне приложения, но не заменяет сетевую DDoS-защиту, rate limiting на nginx/CDN и инфраструктурную фильтрацию. При больших L3/L4 или volumetric атаках нужна защита выше уровня PHP.