
CrawlerDetect
Определение ботов по заголовкам запроса и защита форм от спама без CAPTCHA
- MODX 3
- PHP 8.2


crawlerDetectBlock указан в &preHooks вызова FormIt.crawlerDetectBlock в preHooks.preHooks с crawlerDetectBlock.Проверка: отправьте форму с User-Agent бота (например Googlebot) через инструменты разработчика или curl.
[[!isCrawler]] без кэша. С кэшем результат один на всех посетителей.vendor/autoload.php. Сервис создаётся, isCrawler() возвращает «не бот», в журнал ничего не пишется.services->get. В журнал пишется ERROR, isCrawler возвращает 0. PreHook crawlerDetectBlock в этом случае пропускает отправку формы.[[+fi.validation_error_message]] (MODX) или {$modx->getPlaceholder('fi.validation_error_message')} (Fenom).Ложные срабатывания часто вызываются нестандартным User-Agent.
crawlerDetectBlock или проверьте логи.Управление → Системный журнал. При включённой настройке crawlerdetect_log_blocked заблокированные попытки попадают в лог. Строка: HTTP_USER_AGENT не длиннее 200 символов. Заголовки HTTP_FROM и HTTP_SEC_CH_UA в журнал не пишутся.