Один символ — «&» — разделяет живого человека и бота в поисковом запросе. Именно это обнаружил Саймон Уиллисон, когда искал способ защитить свой фасетный поиск от агрессивных кроулеров без того, чтобы превращать жизнь читателей в бесконечную CAPTCHA-пытку. Решение — одна строка в Cloudflare WAF. Помог её сформулировать Claude Code.
Контекст
Cloudflare давно переименовал свой CAPTCHA-механизм: теперь это Web Application Firewall → Custom rules → Managed Challenge. Смысл прежний — пропустить человека, остановить бота. Но проблема стандартных «тупых» правил в том, что они бьют по всем подряд: настоящий читатель видит «Подождите, проверяем…» наравне с кроулером.
Уиллисон столкнулся с типичным сценарием: его фасетный поисковик генерирует URL с несколькими параметрами — когда пользователь выбирает фильтры, в строке появляются амперсанды. Кроулеры обходят такие URL пачками, пытаясь проиндексировать все комбинации. А простой запрос /search/?q=term — один параметр, без амперсанда — почти всегда означает живого человека.
Это различие и стало основой для умного правила. Cloudflare WAF позволяет писать условия на собственном языке выражений. Итоговое правило выглядит так: (http.request.uri.path wildcard r"/search/*" and http.request.uri.query contains "&"). Только пути под /search/ и только если в query есть «&» — тогда Managed Challenge. Просто. Но найти это без понимания WAF-синтаксиса — не быстро.
Аналитика
Здесь работают два слоя. Первый — само техническое решение: разделение «простой запрос пользователя» vs «перебор комбинаций ботом» через морфологию URL — это паттерн, применимый далеко за пределами Cloudflare. Любой API, любой поиск с фильтрами сталкивается с этой проблемой. Амперсанд как маркер сложного запроса — простая, но сильная эвристика.
Второй слой — как Уиллисон пришёл к этому решению. Он прямо пишет: «после некоторой возни с Claude Code». Не документация, не Stack Overflow, не Cloudflare-саппорт — а итеративный диалог с LLM. Это показательно: Claude Code становится де-факто DevOps-ассистентом для разработчиков-одиночек и небольших команд, закрывая «длинный хвост» задач — тех, где нет готового туториала и нужно копать специфичную документацию.
Отдельно интересен эпизод с Cloudflare MCP. Уиллисон попробовал управлять WAF через MCP-сервер Cloudflare прямо из Claude Code — концептуально это «AI управляет инфраструктурой через инструменты». Оказалось, что MCP не умеет редактировать нужные правила. Claude Code переключился на прямой Cloudflare API. Паттерн «попробовал MCP → не хватает → перешёл на API» будет типичным ещё долго: MCP-экосистема растёт быстро, но покрытие функций пока неравномерное. Это честный сигнал о зрелости инструментов, а не провал идеи.
Кейсы применения в бизнесе
B2B SaaS стартап с поиском и фильтрами. Каталог, маркетплейс, любой фасетный UI — кроулеры обходят все комбинации фильтров и создают нагрузку на БД. WAF-правило: challenge только на URL с двумя и более параметрами. Это снижает нагрузку без ущерба для пользователей. Настройка — 30 минут с Claude Code в роли ассистента по синтаксису.
Корпорация с legacy и Cloudflare Enterprise. WAF уже стоит, но правила настраивались годами и трогать их страшно. Claude Code + Cloudflare API позволяет аудировать существующие правила, выявлять коллизии и предлагать точечные изменения без риска «сломать всё». Начать с аудита: попросить Claude разобрать текущий набор правил и объяснить каждое — это безопасный первый шаг.
SMB и локальный бизнес в КР и СНГ. Небольшой интернет-магазин или сервис на Cloudflare Free сталкивается с теми же кроулерами, но без DevOps-ресурса. Одно правило — это несколько кликов плюс одна строка синтаксиса. Claude в браузере поможет сформулировать выражение под конкретный сайт. Стоимость при Free-тарифе Cloudflare — нулевая, если не превышать лимиты бесплатного плана.
Кейсы в личной жизни
Разработчик с личным проектом или блогом. Поисковый функционал — частая цель кроулеров. Даже небольшой персональный сайт на Cloudflare получает трюк с амперсандом за 20 минут. Заодно — практика с WAF Expression Language: навык, который пригодится в production.
Контент-мейкер с архивом материалов. Статьи, подкасты, видео с поиском — агрессивный обход тормозит сайт в пиковые моменты. Claude Code + Cloudflare — быстрый способ защититься без найма специалиста. Сформулировать задачу в чате, получить правило, вставить в Dashboard.
Junior-разработчик или студент. Этот кейс — отличный учебный пример AI-assisted DevOps. Попробуйте: бесплатный аккаунт Cloudflare, тестовый домен, Claude Code — и задача «настрой WAF для защиты поиска». Час практики даёт реальный опыт работы с WAF + MCP + Cloudflare API в реальных условиях.
Как применить сегодня
- Откройте Cloudflare Dashboard → Security → WAF → Custom rules. Добавьте правило: путь содержит ваш search-endpoint, query содержит «&». Действие — Managed Challenge.
- Попросите Claude сформулировать WAF Expression под ваш URL-паттерн — скажите, как выглядят ваши search-URL с фильтрами.
- Для программного управления WAF используйте Cloudflare API, а не MCP — пока покрытие MCP неполное. Claude Code умеет писать скрипты под Cloudflare API.
- Проверьте правило в Cloudflare Expression Preview до активации: вставьте несколько тестовых URL и убедитесь, что challenge срабатывает только на нужные.
- Мониторьте метрику Managed Challenge в Cloudflare Analytics первые 24 часа — убедитесь, что легитимный трафик не задет.