Как настроить правила WAF Cloudflare для разрешения Perplexity и ChatGPT при блокировке агрессивных краулеров
Понимание управления ИИ-ботами в Cloudflare: почему глобальная кнопка блокировки опасна
Функция Cloudflare «Блокировать ИИ-ботов» в один клик неизбирательно блокирует всех ИИ-краулеров, включая полезные поисковые системы, такие как Perplexity и ChatGPT, которые генерируют значительный органический трафик на ваш сайт. Этот радикальный вариант препятствует индексации вашего контента поисковыми платформами нового поколения на основе ИИ, фактически делая ваш веб-сайт невидимым для миллионов пользователей, которые полагаются на поисковые инструменты с поддержкой ИИ для поиска информации.
Стратегическая важность избирательного управления ИИ-ботами
Современный веб-трафик все чаще исходит от поисковых систем и ассистентов на основе ИИ. Perplexity, ChatGPT Search, AI Overviews от Google и аналогичные платформы представляют будущее поиска информации. Блокировка этих легитимных краулеров при использовании общей блокировки ИИ-ботов Cloudflare создает критический разрыв в видимости, который может серьезно повлиять на обнаруживаемость вашего сайта и органический охват.
Решение заключается во внедрении детализированных правил Web Application Firewall (WAF), которые различают полезных ИИ-краулеров и агрессивных скраперов, потребляющих пропускную способность без предоставления ценности. Это руководство предоставляет исчерпывающие инструкции по настройке правил WAF Cloudflare, которые защищают вашу инфраструктуру при сохранении видимости в экосистемах ИИ-поиска.
Основные User-Agent ИИ-краулеров и диапазоны IP-адресов
Перед настройкой правил WAF необходимо понимать методы идентификации, используемые легитимными ИИ-краулерами. Следующая таблица содержит исчерпывающую информацию об основных user-agent ИИ-ботов и связанных с ними диапазонах IP-адресов:
| Провайдер | Токен User-Agent | Пример полного User-Agent | Проверка диапазона IP | Токен Robots.txt |
|---|---|---|---|---|
| Perplexity AI | PerplexityBot | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/bot) | Проверка через обратный DNS-запрос | PerplexityBot |
| OpenAI (ChatGPT) | GPTBot | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.0; +https://openai.com/gptbot) | Опубликованный JSON на openai.com/gptbot.json | GPTBot |
| OpenAI (SearchGPT) | OAI-SearchBot | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot) | Опубликованный JSON на openai.com/searchbot.json | OAI-SearchBot |
| Google (Gemini) | Google-Extended | Mozilla/5.0 (compatible; Google-Extended/1.0; +http://www.google.com/bot.html) | Проверка через диапазоны IP Google | Google-Extended |
| Anthropic (Claude) | anthropic-ai | anthropic-ai (compatible; Claude-Web/1.0; +https://anthropic.com/bot) | Проверка через обратный DNS | anthropic-ai |
| Apple (Applebot) | Applebot | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot) | 17.0.0.0/8 (основной диапазон) | Applebot |
| Cohere | cohere-ai | cohere-ai (compatible; CohereBot/1.0; +https://cohere.com/bot) | Проверка через обратный DNS | cohere-ai |
| Meta AI | FacebookBot | facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) | Опубликованный ASN: AS32934, AS63293 | FacebookBot |
Настройка пользовательских правил WAF для разрешения полезных ИИ-краулеров
Пользовательские правила WAF Cloudflare обеспечивают гибкость для создания сложных политик управления ботами. Следующая конфигурация разрешает легитимных ИИ-поисковых краулеров при блокировке агрессивных скраперов и неавторизованных ботов.
Шаг 1: Доступ к пользовательским правилам WAF Cloudflare
- Войдите в панель управления Cloudflare
- Выберите домен, который хотите настроить
- Перейдите в Безопасность → WAF → Пользовательские правила
- Нажмите Создать правило, чтобы начать настройку вашего пользовательского набора правил
Шаг 2: Создание правила разрешения для легитимных ИИ-краулеров
Создайте правило со следующей конфигурацией:
Название правила: Разрешить легитимных ИИ-поисковых краулеров
Выражение:
(http.user_agent contains "PerplexityBot") or (http.user_agent contains "GPTBot") or (http.user_agent contains "OAI-SearchBot") or (http.user_agent contains "Google-Extended") or (http.user_agent contains "anthropic-ai") or (http.user_agent contains "Applebot") or (http.user_agent contains "cohere-ai") or (http.user_agent contains "FacebookBot" and not http.user_agent contains "facebookexternalhit")
Действие: Разрешить
Приоритет: Установите на 1 (наивысший приоритет для обеспечения первоочередного выполнения этого правила)
Шаг 3: Создание правила блокировки для агрессивных универсальных скраперов
После разрешения легитимных краулеров создайте вторичное правило для блокировки известных агрессивных скраперов:
Название правила: Блокировать агрессивных скраперов и неавторизованных ботов
Выражение:
(http.user_agent contains "scrapy") or (http.user_agent contains "python-requests") or (http.user_agent contains "curl") or (http.user_agent contains "wget") or (http.user_agent contains "go-http-client") or (http.user_agent contains "axios") or (http.user_agent contains "node-fetch") or (http.user_agent eq "") or (http.user_agent contains "Bytespider") or (http.user_agent contains "PetalBot") or (http.user_agent contains "AhrefsBot" and not cf.bot_management.verified_bot) or (http.user_agent contains "SemrushBot" and not cf.bot_management.verified_bot) or (http.user_agent contains "DotBot") or (http.user_agent contains "MJ12bot") or (http.user_agent contains "BLEXBot")
Действие: Блокировать
Приоритет: Установите на 2
Шаг 4: Внедрение правил проверки для подозрительных паттернов трафика
Для трафика, который не соответствует критериям разрешения или блокировки, но демонстрирует подозрительные паттерны, внедрите правило проверки:
Название правила: Проверка подозрительного бот-подобного поведения
Выражение:
(cf.bot_management.score lt 30) and not (cf.bot_management.verified_bot) and not (http.user_agent contains "PerplexityBot") and not (http.user_agent contains "GPTBot") and not (http.user_agent contains "OAI-SearchBot") and not (http.user_agent contains "Google-Extended") and not (http.user_agent contains "Applebot")
Действие: Управляемая проверка
Приоритет: Установите на 3
Внедрение пользовательских правил ограничения частоты запросов для защиты API-эндпоинтов
Ограничение частоты запросов обеспечивает дополнительный уровень защиты от злоупотреблений скрапингом, особенно для API-эндпоинтов и ресурсоемких страниц. Следуйте этим шагам для настройки интеллектуального ограничения частоты, которое не влияет на легитимных ИИ-краулеров:
Шаг 1: Переход к правилам ограничения частоты запросов
- В панели управления Cloudflare перейдите в Безопасность → WAF → Правила ограничения частоты
- Нажмите Создать правило
Шаг 2: Настройка ограничения частоты для API-эндпоинтов
Название правила: Ограничение частоты API-эндпоинтов с исключением ИИ-краулеров
Выражение:
(http.request.uri.path contains "/api/") and not (http.user_agent contains "PerplexityBot") and not (http.user_agent contains "GPTBot") and not (http.user_agent contains "OAI-SearchBot") and not (http.user_agent contains "Applebot") and not (cf.bot_management.verified_bot)
Характеристики:
- Запросы: 100 запросов
- Период: 60 секунд
- Метод подсчета: Подсчет по IP-адресу
Действие: Блокировать на 1 час
Шаг 3: Настройка ограничения частоты для контентных страниц
Для контентных страниц внедрите более щедрые ограничения частоты, которые учитывают легитимные паттерны чтения:
Название правила: Ограничение частоты контентных страниц
Выражение:
(http.request.uri.path contains "/blog/" or http.request.uri.path contains "/articles/") and not (http.user_agent contains "PerplexityBot") and not (http.user_agent contains "GPTBot") and not (http.user_agent contains "OAI-SearchBot") and not (http.user_agent contains "Google-Extended") and not (http.user_agent contains "Applebot") and not (cf.bot_management.verified_bot)
Характеристики:
- Запросы: 300 запросов
- Период: 300 секунд (5 минут)
- Метод подсчета: Подсчет по IP-адресу
Действие: Управляемая проверка
Шаг 4: Внедрение ограничения частоты для агрессивных краулеров
Создайте строгое ограничение частоты специально для известных агрессивных краулеров, которые не были заблокированы полностью:
Название правила: Троттлинг агрессивных краулеров
Выражение:
(http.user_agent contains "AhrefsBot") or (http.user_agent contains "SemrushBot") or (http.user_agent contains "MJ12bot") or (cf.bot_management.score lt 20 and not cf.bot_management.verified_bot)
Характеристики:
- Запросы: 10 запросов
- Период: 60 секунд
- Метод подсчета: Подсчет по IP-адресу
Действие: Блокировать на 24 часа
Шаг 5: Мониторинг и корректировка ограничений частоты
- Перейдите в Безопасность → События для мониторинга сработавших правил
- Просмотрите Журнал активности на предмет ложных срабатываний, влияющих на легитимный трафик
- Корректируйте пороги ограничения частоты на основе типичных паттернов трафика вашего сайта
- Используйте Аналитика → Безопасность для выявления новых паттернов скраперов
- Обновляйте белый список ежеквартально по мере появления новых ИИ-поисковых систем
Расширенная конфигурация: проверка диапазонов IP-адресов
Строки user-agent могут быть подделаны, что делает проверку диапазонов IP-адресов важным вторичным методом валидации. Внедрите эти расширенные правила для повышенной безопасности:
Валидация диапазонов IP проверенных ботов
Создайте правило, которое требует как правильного user-agent, ТАК И проверки диапазона IP для ценного контента:
(http.request.uri.path contains "/premium/") and ( (http.user_agent contains "GPTBot" and not cf.bot_management.verified_bot) or (http.user_agent contains "PerplexityBot" and not cf.bot_management.verified_bot) )
Действие: Управляемая проверка
Это правило проверяет краулеров, заявляющих, что они легитимные ИИ-боты, но не исходящих из проверенных диапазонов IP, защищая премиум-контент от попыток подделки.
Лучшие практики мониторинга и обслуживания
Эффективное управление правилами WAF требует постоянного мониторинга и корректировки. Внедрите эти лучшие практики:
- Еженедельный обзор: Проверяйте События безопасности на предмет заблокированного легитимного трафика и соответственно корректируйте правила
- Ежемесячный анализ: Просматривайте данные Аналитики для выявления новых user-agent краулеров и новых паттернов скрапинга
- Ежеквартальные обновления: Обновляйте белый список по мере запуска новых ИИ-поисковых систем и модификации существующими своих краулеров
- Настройка оповещений: Настройте уведомления Cloudflare о необычных всплесках заблокированного трафика
- Документация: Ведите внутреннюю документацию изменений правил и обоснования каждой конфигурации
- Протокол тестирования: Перед развертыванием новых правил в продакшн тестируйте их в режиме «Журнал» для выявления потенциальных проблем
Координация с Robots.txt
Правила WAF должны дополнять, а не заменять ваши директивы robots.txt. Поддерживайте скоординированный подход:
# Разрешить полезных ИИ-краулеров User-agent: PerplexityBot Allow: / User-agent: GPTBot Allow: / User-agent: OAI-SearchBot Allow: / User-agent: Google-Extended Allow: / User-agent: Applebot Allow: / User-agent: anthropic-ai Allow: / # Блокировать агрессивных скраперов User-agent: Bytespider Disallow: / User-agent: PetalBot Disallow: / User-agent: AhrefsBot Crawl-delay: 10 Disallow: /api/ User-agent: SemrushBot Crawl-delay: 10 Disallow: /api/
Соображения влияния на производительность
Правила WAF выполняются при каждом запросе, поэтому оптимизация критична для поддержания производительности сайта:
- Порядок правил: Размещайте наиболее часто срабатывающие правила (правила разрешения для распространенных краулеров) с более высоким приоритетом для сокращения времени обработки
- Эффективность выражений: Используйте простое сопоставление строк (contains) вместо сложных регулярных выражений, когда это возможно
- Консолидация правил: Объединяйте связанные условия в одно правило вместо создания нескольких перекрывающихся правил
- Интеграция с кэшированием: Убедитесь, что правила WAF не мешают кэшированию Cloudflare, избегая ненужных проверок кэшируемых ресурсов
- Географические соображения: Для регионально-специфичного контента добавляйте географические фильтры для сокращения ненужной оценки правил
Часто задаваемые вопросы
Почему не следует использовать функцию Cloudflare «Блокировать ИИ-ботов» в один клик?
Глобальная блокировка ИИ-ботов Cloudflare — это неизбирательный инструмент, который блокирует всех ИИ-краулеров, включая полезных, таких как Perplexity, ChatGPT Search и ИИ-функции Google. Эти платформы генерируют значительный органический трафик и представляют будущее поиска. Их блокировка делает ваш контент невидимым для миллионов пользователей, которые полагаются на поисковые инструменты с поддержкой ИИ. Пользовательские правила WAF позволяют избирательно разрешать легитимные ИИ-поисковые системы при блокировке агрессивных скраперов, не предоставляющих ценности.
Как проверить, что правила WAF работают корректно?
Отслеживайте свои правила через панель События безопасности Cloudflare (Безопасность → События). Она показывает данные в реальном времени о том, какие правила срабатывают и какой трафик они затрагивают. Запускайте новые правила в режиме «Журнал» вместо режима «Блокировка», чтобы наблюдать их поведение без влияния на трафик. Просматривайте Журнал активности ежедневно в течение первой недели после внедрения новых правил для выявления ложных срабатываний. Вы также можете использовать команды curl с различными строками user-agent для ручного тестирования правил.
В чем разница между действиями «Блокировать» и «Управляемая проверка»?
«Блокировать» немедленно запрещает доступ без возможности продолжения для посетителя, возвращая ошибку 403 Forbidden. Это подходит для известных вредоносных ботов и агрессивных скраперов. «Управляемая проверка» представляет интеллектуальную проверку, которую легитимные браузеры могут пройти автоматически, блокируя ботов. Система Cloudflare определяет подходящий тип проверки (невидимая, JavaScript-проверка или CAPTCHA) на основе характеристик запроса. Используйте Управляемую проверку для подозрительного трафика, который может включать легитимных пользователей, и Блокировку для подтвержденных вредоносных источников.
Как часто следует обновлять белый список ИИ-краулеров?
Просматривайте и обновляйте белый список как минимум ежеквартально, поскольку ландшафт ИИ-поиска быстро развивается. Новые ИИ-поисковые системы запускаются регулярно, а существующие могут изменять свои user-agent краулеров или диапазоны IP. Подписывайтесь на объявления крупных ИИ-компаний (OpenAI, Anthropic, Google, Perplexity), чтобы быть в курсе изменений краулеров. Отслеживайте журнал События безопасности на предмет заблокированных user-agent, которые могут быть легитимными новыми краулерами. При запуске крупных ИИ-поисковых продуктов (таких как ChatGPT Search или новые ИИ-функции Google) немедленно обновляйте правила для поддержания видимости.
Могут ли легитимные ИИ-краулеры подделывать свои user-agent для обхода правил?
Хотя user-agent могут быть подделаны, легитимные ИИ-компании не занимаются этой практикой, так как это повредило бы их репутации и нарушило бы руководства для вебмастеров. Однако злоумышленники могут подделывать user-agent легитимных краулеров. Поэтому проверка диапазонов IP критична. Используйте поле cf.bot_management.verified_bot Cloudflare, которое валидирует, что запросы, заявляющие о принадлежности к известным ботам, действительно исходят из проверенных диапазонов IP. Для ценного контента внедрите правила, требующие как правильного user-agent, ТАК И проверенного диапазона IP. Это предотвращает подделку при разрешении легитимных краулеров.
Какие ограничения частоты подходят для ИИ-краулеров?
Легитимные ИИ-краулеры обычно соблюдают разумные ограничения частоты и директивы crawl-delay. Для полезных краулеров, таких как PerplexityBot и GPTBot, полностью освободите их от ограничения частоты или установите очень щедрые лимиты (1000+ запросов за 5 минут). Эти краулеры уже разработаны с уважением и не перегрузят ваш сервер. Для агрессивных SEO-краулеров, таких как AhrefsBot или SemrushBot, внедрите строгие лимиты (10-20 запросов в минуту) для предотвращения истощения ресурсов. Отслеживайте нагрузку на сервер и корректируйте лимиты на основе возможностей вашей инфраструктуры. API-эндпоинты должны иметь более строгие лимиты, чем контентные страницы.
Следует ли блокировать все user-agent Python и curl?
Блокировка универсальных user-agent, таких как «python-requests» или «curl», может быть эффективна против неизощренных скраперов, но также может заблокировать легитимные автоматизированные инструменты, сервисы мониторинга и внутренние скрипты. Вместо общей блокировки используйте многоуровневый подход: блокируйте эти user-agent только на чувствительных эндпоинтах (API, административные панели), разрешая их на публичном контенте. Альтернативно, используйте ограничение частоты вместо прямой блокировки — легитимные инструменты будут соблюдать ограничения частоты, в то время как агрессивные скраперы вызовут блокировки. Рассмотрите внедрение аутентификации по API-ключу для программного доступа вместо полагания исключительно на блокировку user-agent.
Как обрабатывать ложные срабатывания, когда блокируются легитимные пользователи?
Ложные срабатывания неизбежны при агрессивном управлении ботами. Внедрите четкий процесс разблокировки: создайте специальную страницу, объясняющую, почему произошла блокировка, и предоставляющую контактную информацию для легитимных пользователей для запроса разблокировки. Используйте «Управляемую проверку» вместо «Блокировки» для пограничных случаев, так как это позволяет легитимным пользователям доказать, что они люди. Ежедневно отслеживайте панель События безопасности на предмет паттернов, указывающих на ложные срабатывания (например, блокировки с корпоративных диапазонов IP, определенных географических регионов или в рабочие часы). Ведите белый список известных хороших диапазонов IP (ваш офис, крупные корпоративные сети, облачные провайдеры, используемые легитимными сервисами).
Каково влияние этих правил WAF на счет Cloudflare?
Пользовательские правила WAF включены в тарифы Cloudflare Pro и выше, с ограничениями на количество правил, которые можно создать (обычно 10-100 в зависимости от вашего тарифа). Сами правила не влекут за собой посчетных платежей — они оцениваются как часть стандартной обработки запросов Cloudflare. Правила ограничения частоты могут иметь отдельную цену на некоторых тарифах. Функции управления ботами (cf.bot_management.score) требуют тарифа Business или Enterprise. Влияние на производительность минимально, так как граничная сеть Cloudflare эффективно обрабатывает эти правила. Экономия затрат от блокировки вредоносного трафика (сокращение пропускной способности, нагрузки на сервер и затрат, связанных со скрапингом) обычно значительно превышает любые дополнительные сборы Cloudflare.
Как сбалансировать доступ SEO-краулеров с защитой от скраперов?
Различайте легитимных SEO-краулеров (Googlebot, Bingbot) и агрессивные SEO-инструменты (AhrefsBot, SemrushBot). Всегда разрешайте проверенных краулеров поисковых систем — используйте cf.bot_management.verified_bot для обеспечения их легитимности. Для краулеров SEO-инструментов внедрите ограничение частоты вместо блокировки, если вы находите их данные полезными для конкурентного анализа. Используйте директивы crawl-delay в robots.txt для замедления агрессивных краулеров без их полной блокировки. Для премиум или закрытого контента блокируйте всех краулеров, кроме проверенных поисковых систем. Помните, что легитимные краулеры поисковых систем (Google, Bing) необходимы для традиционного SEO, в то время как ИИ-поисковые краулеры (Perplexity, ChatGPT) необходимы для видимости в ИИ-поиске — вам нужны оба.
Можно ли использовать эти правила для создания модели платного API-доступа?
Да, правила WAF могут обеспечивать многоуровневую модель доступа. Создайте правила, блокирующие весь автоматизированный доступ к определенным эндпоинтам, затем выдавайте API-ключи платным клиентам и вносите их диапазоны IP в белый список или требуйте заголовки аутентификации. Используйте Cloudflare Workers в сочетании с правилами WAF для более сложной аутентификации. Внедрите уровни ограничения частоты на основе уровня подписки — бесплатный уровень получает 100 запросов/час, платный уровень получает 10 000 запросов/час. Для ИИ-компаний, желающих обучаться на вашем контенте, вы можете избирательно разрешать их краулерам определенные разделы, требуя коммерческих соглашений для премиум-контента. Этот подход становится все более распространенным, поскольку издатели стремятся монетизировать доступ к данным для обучения ИИ.
Что делать, если запускается новая ИИ-поисковая система?
Когда запускается новая ИИ-поисковая система, изучите документацию их краулера для идентификации строки user-agent и диапазонов IP. Большинство легитимных ИИ-компаний публикуют эту информацию в документации robots.txt или на страницах для разработчиков. Добавьте их user-agent в белый список в течение 24-48 часов после запуска для обеспечения ранней индексации вашего контента. Отслеживайте События безопасности, чтобы увидеть, блокируется ли их краулер существующими правилами. Учитывайте репутацию компании и потенциальную ценность трафика перед разрешением их краулера — не все ИИ-поисковые системы будут генерировать значимый трафик. Присоединяйтесь к сообществам и форумам вебмастеров, где обсуждаются запуски новых краулеров, чтобы оставаться в курсе новых платформ.