← Документация WAF / custom-rules / use-cases
Челлендж для плохих ботов
Функция Cloudflare Bot Management оценивает вероятность того, что запрос исходит от бота.
Настройки ботов
Прежде чем создавать пользовательские правила для защиты от ботов, проверьте настройки на вашей странице Security Settings в разделе Трафик ботов. Встроенные функции автоматически обновляются новыми сигнатурами ботов, не учитываются в лимитах пользовательских правил и проще в управлении.
| Сценарий использования | Настройка ботов |
|---|---|
| Блокировка AI-краулеров (GPTBot, ClaudeBot и др.) | Блокировка ИИ-ботов |
| Блокировка однозначно автоматизированного трафика (оценка бота 1) | Определённо автоматизированный |
| Челлендж для вероятно автоматизированного трафика (оценка бота 2–29) | Likely automated |
| Разрешение верифицированных ботов (Googlebot, Bingbot и др.) | Верифицированные боты |
| Распространение защиты от ботов на статические ресурсы | Защита статических ресурсов |
| Разрешение loopback-запросов WordPress | Оптимизация для WordPress |
Пользовательские правила по-прежнему ценны, когда нужна защита по конкретным путям (разная обработка для /api/ и /login/), пользовательские пороги оценки (например, оценка ниже 20 вместо 30), условная логика, сочетающая оценку бота с другими полями, или пользовательские действия, недоступные во встроенных настройках.
Bot score принимает значения от 1 до 99. Низкое значение указывает, что запрос пришёл от скрипта, API-сервиса или автоматизированного агента. Высокое значение указывает, что запрос отправил человек из обычного десктопного или мобильного браузера.
В этих примерах используется:
cf.bot_management.scoreдля отбора запросов от ботовcf.bot_management.verified_botдля выявления запросов от известные добросовестные боты ↗cf.bot_management.ja3_hashдля отбора конкретных JA3-отпечатки
Предлагаемые правила
Для наилучших результатов:
- Используйте Bot Analytics, чтобы изучить свой трафик перед применением правил.
- Начинайте с малого и постепенно повышайте порог оценки ботов.
Ваши правила также могут отличаться в зависимости от специфика вашего сайта и вашей терпимости к ложным срабатываниям.
Общая защита
Следующие три пользовательских правила обеспечивают базовую защиту от вредоносных ботов:
Правило 1: пропуск верифицированных ботов
- Expression:
(cf.bot_management.verified_bot) - Действие: Skip:
- Все остальные пользовательские правила
- Известные добросовестные боты (Googlebot, Bingbot, сервисы мониторинга) обходят все пользовательские правила. См. список верифицированных ботов и каталог ботов Radar ↗.
Правило 2: блокировка определённо автоматизированного трафика
- Expression:
(cf.bot_management.score eq 1) - Действие: Block
- Трафик с оценкой 1 однозначно автоматизирован. Его блокировка несёт минимальный риск ложных срабатываний.
Правило 3: челлендж для вероятно автоматизированного трафика
- Expression:
(cf.bot_management.score gt 1 and cf.bot_management.score lt 30) - Действие: Managed Challenge
- Оценки 2-29 указывают на вероятно автоматизированное поведение. Челлендж пропускает легитимных пользователей и останавливает ботов.
Специализированная защита браузерного, API- и мобильного трафика
Защита браузерных эндпоинтов
Когда запрос определённо автоматизирован (оценка 1) или вероятно автоматизирован (оценки от 2 до 29) и not в списке известных добросовестных ботов, Cloudflare блокирует запрос.
- Expression:
(cf.bot_management.score lt 30 and not cf.bot_management.verified_bot) - Действие: Block
Исключение API-трафика
Поскольку Bot Management обнаруживает автоматизированных пользователей, вам нужно явно разрешить ваши хорошие автоматизированный трафик — включая ваши API ↗ и партнёрских API.
Этот пример даёт ту же защиту, что и правило только для браузеров, но пропускает автоматизированный трафик к вашему API.
- Expression:
(cf.bot_management.score lt 30 and not cf.bot_management.verified_bot and not starts_with(http.request.uri.path, "/api")) - Действие: Block
Учитывайте мобильный трафик
Поскольку Bot Management может быть более чувствителен к мобильному трафику, возможно, стоит добавить дополнительную логику, чтобы не блокировать легитимные запросы.
Если вы обрабатываете запросы от собственного мобильного приложения, его можно разрешить по его специфическому JA3-отпечаток.
- Expression:
(cf.bot_management.ja3_hash eq "df669e7ea913f1ac0c0cce9a201a2ec1") - Действие: Skip:
- Все остальные пользовательские правила
Иначе можно задать более низкие пороги для мобильного трафика. Следующие правила заблокируют определённо автоматизированный мобильный трафик и выдадут челлендж вероятно автоматизированному.
Правило 1:
- Expression:
(cf.bot_management.score lt 2 and http.user_agent contains "App_Name 2.0") - Действие: Block
Правило 2:
- Expression:
(cf.bot_management.score lt 30 and http.user_agent contains "App_Name 2.0") - Действие: Managed Challenge
Комбинирование разных правил
Если ваш домен обслуживает мобильный, браузерный и API-трафик, эти правила-примеры стоит расположить в следующем порядке:
- Правило для API-трафик
- Правило (правила) для мобильный трафик
- Правило для браузерный трафик
Защита статических ресурсов
Статические ресурсы защищены по умолчанию, когда вы создаёте пользовательские правила с использованием cf.bot_management.score .
Чтобы исключить статические ресурсы, добавьте not (cf.bot_management.static_resource) в выражении правила. Подробнее см. Защита статических ресурсов.
Дополнительные замечания
Далее вы можете адаптировать ваши пользовательские правила под конкретные пути запросов (/login или /signup), типичным паттернам трафика и многим другим характеристикам.
Обязательно проверьте Bot Analytics и Security Events , чтобы проверить, требуется ли дополнительная настройка правил.