Отделите WAF от остальных слоёв защиты
WAF проверяет признаки угроз в тех частях HTTP-запроса, которые доступны его правилам: например, в адресе, заголовках и поддерживаемом теле. Правила могут обнаруживать характерные конструкции SQL-инъекций или межсайтового скриптинга. Наличие проверки не означает обнаружение любого возможного способа атаки.
Антибот оценивает автоматическую активность, ограничения частоты сдерживают поток запросов, а приложение проверяет право пользователя выполнить действие. Эти задачи пересекаются, но одна не заменяет другую. Ошибка бизнес-логики может выглядеть как совершенно обычный HTTP-запрос.
| Задача | Что требуется помимо WAF |
|---|---|
| Исправить SQL-инъекцию | Безопасная работа с запросами к данным и исправление приложения. |
| Не допустить чужую операцию в аккаунте | Проверка прав и бизнес-правил сервером приложения. |
| Сдержать множество обычных запросов | Лимиты нагрузки и анализ автоматизации. |
| Защитить сетевой канал | Подходящая защита сети у инфраструктурного провайдера. |
Уточните, что именно анализируется
У WAF есть пределы размера тела, поддерживаемые форматы и правила обработки загрузок. JSON, обычная форма и потоковая передача файла могут проходить разными путями. Фраза «WAF включён» не отвечает на вопрос, проверено ли конкретное поле конкретного запроса.
В RoboGuard настройки анализа тела и исключения для потоковых запросов задаются явно. Если тело для маршрута выведено из анализа, нельзя обещать проверку его содержимого. WAF также не является антивирусом загруженных файлов и не проверяет сообщения уже установленного WebSocket как обычные HTTP-запросы.
- Составьте список форм, API и загрузок с методами, форматами и характерными размерами.
- Проверьте обработку большого тела и понятность ошибки клиенту.
- Опишите отдельно маршруты, для которых необходима потоковая передача.
- Сохраните проверку данных в приложении даже там, где WAF анализирует тело.
Начните с наблюдения реальных сценариев
Для уже работающего сайта полезно сначала увидеть срабатывания на обычном трафике. Тексты редактора, поисковые строки и поля технических заявок могут содержать конструкции, похожие на атаку. Проверять их нужно в контексте маршрута и задачи.
Наблюдение WAF не отключает независимые ограничения других модулей. Если запрос всё равно блокируется, проверьте общую причину решения. Перед переключением режима убедитесь, что вы смотрите данные именно нужного сайта и применённой версии настроек.
- Пройдите вход, поиск, отправку формы, оформление заказа и характерную загрузку файла.
- Сопоставьте срабатывание с маршрутом, методом и идентификатором правила.
- Определите, является ли содержимое допустимым для этого поля и правильно ли приложение его обрабатывает.
- После устранения ложных срабатываний включайте блокировку и повторяйте затронутые сценарии.
Делайте исключение настолько узким, насколько нужно
Исключение — осознанное уменьшение проверки. Если один маршрут принимает технический текст, не нужно отключать WAF для всего домена. Зафиксируйте причину, затронутое правило и область исключения; проверьте обычную операцию после изменения.
При изменении формы или версии приложения вернитесь к этому решению: старое исключение может потерять смысл. Не публикуйте полное тело пользовательского запроса ради объяснения ошибки; для разбора обычно достаточно минимального обезличенного примера.
Проверяйте защиту вместе с работой приложения
После применения настроек контролируйте ошибки, задержку и доступность важных действий. Успех — это работа нужного ограничения при сохранении нормального сценария, а не максимальное число блокировок. Проверка должна включать динамические запросы, а не только быстрый ответ из кеша.
Продолжайте обновлять приложение, библиотеки и права доступа. Если обнаружена уязвимость, исправляйте её и проверяйте результат. WAF может быть дополнительным ограничением на пути запроса, но не основанием откладывать исправление или обещать полную безопасность сайта.