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