← Варианты использования / use-cases / solutions
Защита от вредоносных ботов с сохранением легитимного трафика (Free, Pro и Business)
Правильный способ защиты от вредоносного бот-трафика зависит от паттернов трафика на вашем сайте и от вашего тарифа. В этом руководстве рассматривается многоуровневый подход с использованием Cloudflare Bots, Cloudflare Application Security (также известного как Web Application Firewall, или WAF), а также Turnstile, от базовой защиты до целевых пользовательских правил. Основной процесс использует функции планов Free, Pro и Business, с примечаниями о возможностях Enterprise.
Просмотрите бот-трафик
Прежде чем менять какие-либо настройки ботов, изучите данные о трафике, чтобы понять, что боты делают на вашем сайте.
Проверьте аналитику по ботам
Аналитика ботов показывают, какая доля вашего трафика автоматизирована, на какие страницы нацелены боты и как Cloudflare оценивает каждый запрос.
-
На панели управления Cloudflare перейдите к разделу Аналитика страницу.
Перейдите в Аналитика ↗ -
Выберите Анализ ботов на вкладке.
Ознакомьтесь со следующим:
- График распределения Bot Score: Показатели ближе к 1 говорят об автоматическом трафике. Показатели ближе к 99 говорят о трафике от людей.
- Самые запрашиваемые пути: Какие конечные точки получают больше всего трафика от ботов. Частые цели: страницы входа, конечные точки API и процесс оформления заказа.
- Структура трафика: Резкие всплески трафика с низким показателем, массовое появление отдельных user agent или географическая концентрация запросов могут говорить об активности ботов, которую стоит проверить.
Изучите категории ботов
Cloudflare разделяет бот-трафик на категории на основе Bot Score и статуса подтверждения:
- Проверенные боты: Краулеры и сервисы, которые Cloudflare подтвердила как легитимные, например Googlebot, Bingbot или инструменты для мониторинга доступности. Cloudflare поддерживает список проверенных ботов со строгими требованиями.
- Automated (оценка 1): Cloudflare практически уверен, что запрос автоматизирован.
- Likely automated (оценки 2-29): вероятно, бот. Эта категория вместе с категорией Automated является основной целью для правил безопасности и включает скраперы, инструменты credential stuffing и отправителей спама.
- Вероятно человек (оценки 30-99): судя по всему, эти запросы поступают от реальных пользователей. Не применяйте к этому трафику Challenge и не блокируйте его.
Блокировка автоматизированного трафика с помощью Bot Fight Mode
Bot Fight Mode определяет запросы, соответствующие известным паттернам ботов, и выдаёт вычислительный challenge. Это снижает автоматизированный трафик на всём сайте без необходимости писать какие-либо правила.
Что делает Bot Fight Mode
Bot Fight Mode включён в тарифы Free. При включении он:
- Выявляет трафик, соответствующий шаблонам известных ботов
- Выдаёт вычислительно сложные challenge-проверки в ответ на действия таких ботов
- Защищает целые домены без ограничений на конечные точки
- Невозможно настроить, изменить или переконфигурировать с помощью custom rules
- Невозможно обойти с помощью пользовательское правило Пропустить действия. Если Bot Fight Mode проверяет запрос, который вы хотите разрешить, вы можете отключить Bot Fight Mode или перейти на Super Bot Fight Mode для более точного контроля.
Подробнее см. в Особенности Bot Fight Mode.
Включите Bot Fight Mode (план Free)
-
На панели управления Cloudflare перейдите к разделу Security Settings страницу.
Перейдите в Настройки ↗ -
Фильтр по Ботовый трафик.
-
Перейдите в Bot fight mode.
-
Включите Bot fight mode включить.
Включите Super Bot Fight Mode (тарифы Pro, Business и Enterprise)
Super Bot Fight Mode добавляет разрешённый список проверенных ботов, действия по категориям, защиту статических ресурсов и обнаружение на основе JavaScript.
-
На панели управления Cloudflare перейдите к разделу Security Settings страницу.
Перейдите в Настройки ↗ -
Фильтр по Ботовый трафик.
-
Перейдите в Super Bot fight mode.
-
Включите Super Bot fight mode включить.
-
Выберите, как ваш домен должен реагировать на разные типы трафика, нажав соответствующий значок редактирования:
- Подробнее о проверенных ботах см. в Проверенные боты.
- Подробнее о поддерживаемых типах файлов см. в Защита статических ресурсов.
- Подробнее о скрытом внедрении кода см. в JavaScript detections.
- Подробнее об оптимизации WordPress см. в Super Bot Fight Mode для WordPress.
Защита форм от автоматизированных злоупотреблений
Turnstile и Application Security правила ограничения частоты запросов защищают конечные точки форм разными способами и наиболее эффективны при совместном использовании.
Turnstile против Rate Limiting
Turnstile проверяет подозрительных ботов до того, как они отправят форму (входа, регистрации, обратной связи или оформления заказа), не показывая посетителям CAPTCHA. Его можно встроить в любой сайт без пропуска трафика через Cloudflare. Используйте Turnstile, когда нужно защитить формы от автоматических отправок.
Ограничение скорости запросов позволяет задавать лимиты для запросов, соответствующих выражению, и действие, которое выполняется при достижении этих лимитов. Используйте ограничение скорости запросов, чтобы защитить конечные точки от злоупотреблений, таких как атаки методом перебора на странице входа или чрезмерное количество вызовов API от одного клиента.
Вместе они обеспечивают наиболее полную защиту. Turnstile выдаёт проверку автоматизированным отправкам на уровне формы. Ограничение частоты запросов перехватывает высокообъёмные атаки, которые обходят форму или вовсе с ней не взаимодействуют, например прямые POST запросов к конечной точке, которые обходят виджет на стороне клиента.
Добавьте Turnstile в форму
Подключение Turnstile состоит из трёх шагов: создайте виджет, добавьте клиентский код и проверьте токен на сервере.
1. Создайте виджет Turnstile
Turnstile настраивается на уровне аккаунта.
-
На панели управления Cloudflare перейдите к разделу Turnstile страницу.
Перейдите в Turnstile ↗ -
Выберите Добавить виджет.
-
Заполните обязательные поля:
- Имя виджета: понятное название виджета.
- Управление именами хостов: домены, на которых будет использоваться виджет.
- Режим виджета: выберите Managed, Non-Interactive или Invisible.
-
(Необязательно) Настройте Поддержка pre-clearance для одностраничных приложений.
-
Выберите Создание, чтобы сохранить виджет.
-
Скопируйте sitekey и секретный ключ, а секретный ключ храните в защищённом месте.
Для следующих шагов вам понадобятся оба ключа: sitekey и secret key.
2. Добавьте клиентский фрагмент кода
Добавьте скрипт и контейнер виджета Turnstile в HTML вашей формы:
<script
src="https://challenges.cloudflare.com/turnstile/v0/api.js"
async
defer
></script>
<form action="/submit" method="POST">
<!-- Your existing form fields -->
<div class="cf-turnstile" data-sitekey="<YOUR_SITE_KEY>"></div>
<button type="submit">Submit</button>
</form>Замените <YOUR_SITE_KEY> на sitekey из предыдущего шага. Виджет отображается внутри div и создаёт токен, когда посетитель проходит проверку.
3. Проверьте токен на вашем сервере
Перед обработкой отправки формы отправьте токен в конечную точку Turnstile siteverify, чтобы подтвердить, что посетитель прошёл проверку:
curl https://challenges.cloudflare.com/turnstile/v0/siteverify \
--header "Content-Type: application/json" \
--data '{
"secret": "<YOUR_SECRET_KEY>",
"response": "<TURNSTILE_RESPONSE_TOKEN>"
}'Замените <YOUR_SECRET_KEY> на секретный ключ и <TURNSTILE_RESPONSE_TOKEN> на cf-turnstile-response значение из отправленной формы. Конечная точка возвращает объект JSON с success поле. Обрабатывайте отправку формы только в том случае, если success это true.
Полные сведения об интеграции см. в Начало работы с Turnstile.
Ограничивайте количество запросов к конечным точкам форм с помощью ограничения частоты запросов
Для эндпоинтов входа многоуровневый подход к ограничению частоты запросов хорошо работает вместе с Turnstile. Следующий пример из Рекомендации по ограничению скорости запросов показывает два правила, которые ужесточают реакцию в зависимости от количества неудачных попыток. Скорректируйте пороговые значения с учётом характера трафика вашего сайта.
Правило короткого окна: Отправляйте проверку IP-адресу, который отправляет слишком много неудачных запросов на вход за короткий промежуток времени.
-
В панели управления Cloudflare перейдите в Безопасность > Правила безопасности.
Перейдите в Правила безопасности ↗ -
Выберите Создать правило > Правила ограничения скорости.
-
Введите понятное название в Название правила.
-
В разделе Если входящие запросы соответствуют, выберите Edit expression и введите:
http.request.uri.path eq "/login" and http.request.method eq "POST" -
В разделе С теми же характеристиками, выберите IP.
-
Включить Использование пользовательского выражения для подсчёта и введите:
http.request.uri.path eq "/login" and http.request.method eq "POST" and http.response.code in {401 403} -
В разделе Когда скорость превышает, введите
4запросов за1 minute. -
В разделе Затем выберите действие, выберите Managed Challenge.
-
Выберите Развернуть.
Правило с длинным окном: Блокируйте IP-адрес, который накапливает неудачные попытки входа за более длительный период.
-
В панели управления Cloudflare перейдите в Безопасность > Правила безопасности.
Перейдите в Правила безопасности ↗ -
Выберите Создать правило > Правила ограничения скорости.
-
Введите понятное название в Название правила.
-
В разделе Если входящие запросы соответствуют, выберите Edit expression и введите:
http.request.uri.path eq "/login" and http.request.method eq "POST" -
В разделе С теми же характеристиками, выберите IP.
-
Включить Использование пользовательского выражения для подсчёта и введите:
http.request.uri.path eq "/login" and http.request.method eq "POST" and http.response.code in {401 403} -
В разделе Когда скорость превышает, введите
20запросов за1 hour. -
В разделе Затем выберите действие, выберите Block с длительностью
1 day. -
Выберите Развернуть.
Этот паттерн использует счётное выражение, которое учитывает только POST запросов, возвращающих коды ошибки аутентификации. У легитимных пользователей, успешно входящих в систему с первой попытки, правило никогда не срабатывает. Проверьте результаты в Security Events чтобы убедиться, что пороговые значения не затрагивают легитимных пользователей.
Полный многоуровневый пример защиты от credential stuffing с тремя правилами см. в Рекомендации по ограничению скорости запросов.
Выявление паттернов ботов с помощью пользовательских правил и ограничения частоты запросов
Application Security пользовательские правила и правила ограничения частоты запросов позволяют нацеливаться на конкретные паттерны трафика, которые не улавливает встроенная защита от ботов. Cloudflare разделяет обнаружение (оценку трафика) и противодействие (действия на основе этих оценок). Вы пишете правила, которые ссылаются на сигналы обнаружения, чтобы определить, какое действие выполнить.
Блокировка запросов с отсутствующими или подозрительными заголовками
Обычные браузеры, как правило, отправляют такие заголовки, как User-Agent, Accept, а также Accept-Language. Многие боты не отправляют эти заголовки или отправляют значения, нехарактерные для браузера. Пользовательское правило, нацеленное на запросы с пустыми или подозрительными заголовками, выявляет ботов, которые обходят обнаружение по показателю.
Прежде чем создавать пользовательские правила, ознакомьтесь со встроенными настройками защиты от ботов в Безопасность > Настройки (фильтр по Ботовый трафик). Эти настройки охватывают типовые сценарии, такие как блокировка AI-краулеров, проверка автоматического трафика и разрешение проверенных ботов, без необходимости писать собственные выражения. Полный список встроенных настроек см. в Проверка вредоносных ботов.
Если встроенных настроек недостаточно, создайте пользовательские правила. Начните с создания исключения для проверенных ботов, чтобы защитить их прежде, чем вы развернёте какие-либо блокирующие правила.
Перейдите в раздел custom rules и создайте оба правила:
-
В панели управления Cloudflare перейдите в Безопасность > Правила безопасности.
Перейдите в Правила безопасности ↗ -
Выберите Создать правило > Custom rules.
Сначала создайте исключение для проверенных ботов:
- Введите понятное название в Название правила.
- В разделе Когда входящие запросы соответствуют, выберите Edit expression и введите:
(cf.client.bot) - В разделе Затем выберите действие, выберите Пропустить из Выберите действие раскрывающемся списке. Затем выберите Все оставшиеся пользовательские правила.
- В разделе Расположите на, выберите Первая из Выберите порядок раскрывающемся списке, чтобы это правило выполнялось раньше любых блокирующих правил.
- Выберите Развернуть.
Это гарантирует, что проверенные боты (поисковые краулеры, сервисы мониторинга) не попадают под действие ваших пользовательских правил. Если у вас есть внутренние API, партнёрские интеграции или инструменты мониторинга, отправляющие автоматизированный трафик, создайте для их IP-адресов или user-agent дополнительные правила Skip до развёртывания блокирующих правил. Ожидаемый автоматизированный трафик можно проверить в Security Events чтобы определить, что добавить в список разрешений.
Затем создайте блокирующее правило:
- Выберите Создать правило.
- Введите понятное название в Название правила.
- В разделе Когда входящие запросы соответствуют, выберите Edit expression и введите:
(http.request.uri.path eq "/login" and http.request.method eq "POST") - В разделе Затем выберите действие, выберите Managed Challenge из Выберите действие в раскрывающемся списке.
- В разделе Расположите на, оставьте Выберите порядок раскрывающемся списке со значением Последняя. Это размещает правило после исключения для проверенных ботов.
- Выберите Развернуть.
- Просмотрите результаты в Security Events. Если правило соответствует только трафику ботов, отредактируйте его и измените действие с Managed Challenge к Block.
Дополнительные параметры пользовательских правил, включая визуальный конструктор полей, описаны в Создание пользовательского правила в панели управления.
Если бот-трафик сосредоточен в странах, где у вас нет реальных пользователей, вы можете сочетать географические фильтры с правилами, описанными выше. Добавьте ip.src.country к выражению, чтобы ограничить действие правила определёнными регионами. Примеры см. в Блокировка трафика по географическому положению.
Защита часто запрашиваемых путей с помощью ограничения скорости запросов
Помимо конечных точек форм боты также атакуют процессы оформления заказа, конечные точки API и другие ценные пути. Правила ограничения частоты запросов ограничивают количество запросов, которое один клиент может отправить по этим путям в течение заданного промежутка времени.
В следующем примере создаётся правило ограничения частоты запросов для конечной точки оформления заказа. Настройте путь, частоту и действие под свой сайт.
-
В панели управления Cloudflare перейдите в Безопасность > Правила безопасности.
Перейдите в Правила безопасности ↗ -
Выберите Создать правило > Правила ограничения скорости.
-
Введите понятное название в Название правила.
-
В разделе Если входящие запросы соответствуют, выберите Edit expression и введите:
http.request.uri.path eq "/api/checkout" and http.request.method eq "POST" -
В разделе С теми же характеристиками, выберите IP.
-
В разделе Когда скорость превышает, введите
10запросов за1 minute. -
В разделе Затем выберите действие, выберите Managed Challenge.
-
Выберите Развернуть.
-
Просмотрите результаты в Security Events. Если правило соответствует только трафику ботов, отредактируйте его и измените действие на Block при необходимости.
Дополнительные шаблоны и пороговые значения описаны в Рекомендации по ограничению скорости запросов.
Проверьте и настройте свои правила
После развёртывания правил защиты от ботов используйте Security Events чтобы убедиться, что они работают как задумано, и скорректировать пороговые значения по результатам.
Проверка Security Events
Security Events показывает запросы, которые обработали или пометили продукты безопасности Cloudflare, включая блокировки, проверки и пометки.
-
На панели управления Cloudflare перейдите к разделу Аналитика страницу.
Перейдите в Аналитика ↗ -
Выберите События на вкладке.
Просмотрите Sampled logs чтобы просмотреть отдельные запросы. Каждая запись журнала показывает выполненное действие, сработавшее правило, исходный IP-адрес, user agent, путь URI и страну. Доступные разделы панели управления зависят от тарифа. Дополнительные сведения см. в Доступность Security Events с описанием функций вашего тарифа.
Обращайте внимание на ложные срабатывания: легитимный трафик, который ваши правила ошибочно заблокировали или подвергли дополнительной проверке. Типичные признаки:
- Запросы от известных сервисов мониторинга или платёжных систем, которые попадают в заблокированные события
- User agent совпадает с легитимным браузером, но всё равно получает проверки
- Большое количество запросов, получивших challenge, из стран с вашими реальными пользователями
Для правил с действием Managed Challenge проверьте доля решённых проверок (CSR). Низкий CSR обычно означает, что правило эффективно отфильтровывает автоматический трафик, а не легитимных пользователей.
Bot Fight Mode и Super Bot Fight Mode по своей природе действуют агрессивно. В первые дни после включения стоит ожидать ложных срабатываний. Ключевое различие между ними в том, как вы обрабатываете исключения:
- Bot Fight Mode (Free) нельзя обойти с помощью действий Skip в пользовательских правилах. Вы можете отключить Bot Fight Mode или перейти на Super Bot Fight Mode для более точного контроля.
- Super Bot Fight Mode (Pro и выше) можно обойти с помощью пользовательских правил с действием Skip, что даёт больше гибкости при создании исключений.
Подробнее об обработке ложных срабатываний см. в Ложные срабатывания.
Настройте свои правила
После анализа Security Events скорректируйте правила на основе полученных результатов.
Сценарий 1: ваши инструменты мониторинга или сервисы блокируются.
Внутренние инструменты мониторинга, сервисы проверки работоспособности или партнёрские API отображаются в заблокированных событиях. Решение зависит от того, какая функция их блокирует:
-
Если Super Bot Fight Mode (Pro и выше) блокирует трафик, создайте пользовательское правило с действием Skip, которое соответствует IP-адресу инструмента или User-Agent:
-
Перейдите в Правила безопасности страницу.
Перейдите в Правила безопасности ↗ -
Выберите Создать правило > Custom rules.
-
Введите понятное название.
-
В разделе Когда входящие запросы соответствуют, выберите Edit expression и введите:
(ip.src eq 192.0.2.1)(замените на IP-адрес вашего инструмента). -
В разделе Затем выберите действие, выберите Пропустить. Затем выберите Все правила Super Bot Fight Mode.
-
Выберите Развернуть.
-
-
Если Bot Fight Mode (Free) блокирует трафик, отключите Bot Fight Mode или перейдите на Super Bot Fight Mode чтобы настроить точные правила исключений.
Подробнее о настройке действия Skip см. в Настройка правила с действием Skip.
Сценарий 2: вредоносный трафик всё ещё проходит.
Активность ботов отображается в Security Events, которые не отлавливают текущие правила. Боты, остающиеся в пределах лимитов частоты запросов или обходящие правила с одним сигналом, требуют комбинирования нескольких сигналов. Например, чтобы выдать проверку POST запросов к /login не от проверенных ботов:
-
В панели управления Cloudflare перейдите в Безопасность > Правила безопасности.
Перейдите в Правила безопасности ↗ -
Выберите Создать правило > Custom rules.
-
Введите понятное название.
-
В разделе Когда входящие запросы соответствуют, выберите Edit expression и введите:
(http.request.uri.path eq "/login" and http.request.method eq "POST" and not cf.client.bot) -
В разделе Затем выберите действие, выберите Managed Challenge.
-
Выберите Развернуть.
-
Просмотрите результаты в Security Events. Если правило срабатывает только на трафик ботов, измените действие на Block.
Дополнительные поля выражений и примеры см. в Варианты использования Custom rules.
Если боты остаются в пределах ваших порогов ограничения скорости, отредактируйте правило ограничения скорости и уменьшите количество запросов или сократите временное окно.
Дополнительные материалы
Боты
- Bot Fight Mode : базовая защита от ботов, доступная на всех планах
- Super Bot Fight Mode : детальное управление защитой от ботов на планах Pro, Business и Enterprise
- Enterprise Bot Management : оценка ботов на основе машинного обучения и анализ поведения
- Bot Analytics : отслеживание характера бот-трафика на вашем домене
Безопасность приложений
- Custom rules : написание целевых правил на основе сигналов трафика и оценки ботов
- Правила ограничения скорости : контроль объёма запросов для защиты конечных точек от злоупотреблений
- Security Events : просмотр и анализ заблокированных запросов
Turnstile
- Turnstile : бесплатная проверка форм и действий пользователя с сохранением конфиденциальности