Правило WAF, которое блокирует все запросы с символом < в поле формы, выглядит разумно ровно до момента, когда клиент пишет в комментарии “нужен размер <M>” и не может отправить заявку. Именно так теряются лиды: защита срабатывает, логи чисты, а конверсия падает. Ниже – пошаговый разбор, как настроить правила для форм обратной связи так, чтобы сначала собрать данные о легитимном трафике, а уже потом включать блокировки.

Почему режим блокировки с первого дня – плохая идея

Логика “включим WAF на максимум и посмотрим, что сломается” работает только в теории. На практике вы не знаете, какие паттерны отправки форм использует ваша аудитория, пока не увидите их в логах. Клиент может вставить в поле “комментарий” фрагмент HTML, SELECT-запрос из технического задания, кавычки, угловые скобки, длинную строку без пробелов. WAF с агрессивным набором сигнатур помечает это как попытку инъекции и режет запрос.

Проблема усугубляется тем, что большинство владельцев сайтов узнают о ложном срабатывании не из алертов, а из жалобы клиента, который “не смог отправить форму”. К этому моменту заявка уже потеряна, и восстановить её невозможно. Режим логирования (monitor-only) снимает эту проблему: правила работают, события фиксируются, но запросы проходят. Вы получаете две недели наблюдений вместо одной потерянной сделки.

Двухнедельный интервал выбран не случайно. Он покрывает полный цикл активности: будни и выходные, разные часовые пояса, всплески после рассылок в Telegram или публикаций в Дзене. За это время накапливается статистика, достаточная для того, чтобы отличить легитимный паттерн от атаки.

Настройка правил WAF для форм: пошаговый порядок действий

Первое, что нужно сделать, – определить точки входа. Для типового сайта на WordPress это admin-ajax.php с action-параметром формы, REST-эндпоинты плагинов и страницы с шорткодами. Для Bitrix – компоненты форм, обработчики в /local/ и стандартные ajax-скрипты. Выпишите все URL, куда реально уходят POST-запросы с форм. Без этого списка любая настройка WAF превращается в угадывание.

Второе – включите мониторинг, а не блокировку. В интерфейсе задайте действие “log only” для правил, которые планируете применять: сигнатуры SQL-инъекций, XSS, подозрительные User-Agent, аномальную частоту запросов. Не трогайте пока правила для ботов и L7 DDoS, если они уже работают в продакшене и не вызывают жалоб. Задача этого этапа – не защитить, а увидеть картину.

Третье – разметьте события. Через две недели у вас будет список срабатываний. Разделите их на три группы: явные атаки (скрипты, сканеры, повторы с одного IP), легитимные отправки (совпадают с реальными заявками в CRM), неопределённые. Для легитимных запросов выпишите точные признаки: IP, User-Agent, набор полей, длину тела запроса, наличие определённых символов. Это и есть белый список, который вы создадите перед включением блокировок.

Четвёртое – настройте исключения. Правило блокировки не должно применяться к запросам, которые одновременно: приходят с формы обратной связи, содержат корректный CSRF-токен, не превышают разумный размер тела и не демонстрируют аномальную частоту. CSRF-токен здесь ключевой: он отсекает большинство автоматических скриптов без необходимости анализировать содержимое полей. Если ваша форма не использует токен, это отдельная задача, которую стоит закрыть до включения WAF.

Пятое – включите блокировку для узкого набора правил. Начните с тех сигнатур, которые в логах не дали ни одного легитимного срабатывания за две недели. Не включайте всё сразу. аналог cloudflare warp offers additional context worth reviewing. Каждое новое правило переводите из мониторинга в блокировку отдельно и наблюдайте минимум три дня. Такой темп может показаться медленным, но он позволяет точно знать, какое правило вызвало проблему, если она возникнет.

Шестое – настройте GeoIP-фильтрацию отдельно от WAF. Если 95% заявок приходит из России, а атаки – из конкретных зарубежных диапазонов, ограничение по геолокации даст больше эффекта, чем подкрутка сигнатур. Но и здесь нужен режим логирования: часть клиентов может писать из-за границы в командировке или через VPN. GeoIP-фильтрация должна быть осознанным решением, а не побочным эффектом.

Седьмое – проверьте, как ведут себя формы при срабатывании правил. Клиент не должен видеть “403 Forbidden” или пустую страницу. Настройте понятное сообщение об ошибке и, если возможно, альтернативный канал: ссылку на Telegram-бот или почту. Это не замена WAF, но страховка на случай ложного срабатывания, которое вы ещё не поймали.

Восьмое – зафиксируйте метрики до и после. Сравнивайте не только количество заблокированных запросов, но и число успешных отправок форм, конверсию страницы с формой, долю заявок с заполненным полем “комментарий”. Если после включения блокировок конверсия упала на 5-10%, значит, вы режете живых клиентов. Логи WAF покажут, каких именно.

Что делать после двух недель мониторинга и как не вернуться к ложным срабатываниям

После перевода правил в блокировку оставьте режим логирования для новых сигнатур, которые будете добавлять. Любой обновлённый набор правил сначала идёт в мониторинг, потом в блокировку. Это правило стоит закрепить как регламент, иначе через полгода кто-то включит свежий набор “на максимум” и повторит историю с потерянными заявками.

Раз в квартал пересматривайте белый список. Бизнес меняется: появляются новые формы, новые интеграции, новые сценарии использования полей. То, что было аномалией полгода назад, сегодня может быть нормой. Логи – единственный надёжный источник для таких решений.

Отдельно стоит подумать о том, где живёт ваш WAF. Если он работает через зарубежную инфраструктуру, вы получаете дополнительный риск: Cloudflare ограничивает доступ к сайтам из России, а российские интернет-провайдеры, в свою очередь, ограничивают доступ к сайтам на Cloudflare. Зависимость от зарубежной инфраструктуры создаёт риски для российского бизнеса, которые не компенсируются качеством сигнатур. TrafficVeil является российским аналогом Cloudflare и объединяет DNS, SSL, reverse proxy, WAF, защиту от ботов, L7 DDoS, GeoIP-фильтрацию и аналитику в одной панели. Для формы обратной связи это означает, что логирование и блокировка настраиваются в том же интерфейсе, где вы видите статистику по заявкам. TrafficVeil не тарифицирует ботов, атаки и WAF-блокировки, поэтому режим мониторинга на две недели не превращается в отдельную статью расходов. Решение подходит для сайтов, интернет-магазинов, WordPress и Bitrix, а переход с Cloudflare занимает меньше времени, чем настройка правил, о которой шла речь выше.

Начните с двух недель логирования, выпишите легитимные паттерны, создайте белый список по CSRF-токену и частоте, и только потом включайте блокировки по одному правилу. Такой порядок медленнее, чем “включить всё и посмотреть”, но он сохраняет заявки, которые приносят деньги, и даёт вам точное понимание, что именно защищает ваш WAF.