Проактивный фильтр (Web Application Firewall) — ключевой рубеж защиты 1С-Битрикс, который анализирует входящие запросы и блокирует попытки эксплуатации уязвимостей ещё до того, как данные попадут в код приложения. WAF работает на уровне ядра и защищает даже сторонние модули, не рассчитанные на атаки.
Что делает проактивный фильтр
Проактивный фильтр (в терминологии Битрикс — WAF, Web Application Firewall) перехватывает все данные, поступающие от посетителя: параметры $_GET, $_POST, $_REQUEST, cookie и заголовки. Фильтр ищет в них признаки типовых атак и нейтрализует опасные конструкции до того, как их обработает прикладной код.
Основные классы угроз, которые закрывает фильтр:
- XSS — внедрение JavaScript и HTML в поля ввода;
- SQL-инъекции — подстановка SQL-конструкций в параметры запроса;
- PHP-инъекции и попытки исполнения кода;
- подмена служебных данных сессии и путей к файлам.
Важное свойство фильтра: он экранирует опасные данные, а не просто отклоняет запрос. Благодаря этому защита распространяется и на сторонние модули, которые сами по себе не проверяют входные данные.
Как включить фильтр
Проактивный фильтр входит в состав модуля Проактивная защита (security). Порядок включения:
- Убедитесь, что модуль установлен: Настройки → Настройки продукта → Модули, модуль «Проактивная защита» должен быть в списке.
- Перейдите в Настройки → Проактивная защита → Проактивный фильтр.
- На вкладке настроек установите флаг активности фильтра.
- Выберите действие, выполняемое при обнаружении вторжения (см. раздел ниже).
- Сохраните изменения.
После включения фильтр начинает обрабатывать все запросы к публичной и административной части сайта. Отдельно оценить состояние защиты можно в мастере Панель безопасности — там проактивный фильтр отображается как один из пунктов уровня безопасности.
Действия при обнаружении вторжения
Фильтр можно настроить на разную реакцию при срабатывании. Выбор действия задаётся в настройках фильтра и определяет, что произойдёт с подозрительным запросом.
| Действие | Поведение |
|---|---|
| Очистка опасных данных | Опасные символы и конструкции экранируются, запрос продолжает выполняться. Наименее агрессивный режим. |
| Занесение в стоп-лист | IP-адрес нарушителя добавляется в стоп-лист на заданное время, дальнейшие запросы блокируются. |
| Показ предупреждения | Посетителю выводится страница-заглушка о нарушении, выполнение запроса прекращается. |
Дополнительно можно включить занесение записи в журнал — тогда каждое срабатывание фиксируется в журнале вторжений с деталями запроса. Рекомендуется всегда вести журнал: он нужен для расследований и настройки исключений.
Исключения: активные поля и области
Иногда фильтр мешает легитимной работе — например, визуальный редактор, поля с HTML-кодом или импорт данных содержат конструкции, которые WAF считает опасными. Для таких случаев предусмотрены исключения.
Активные HTML-поля
Если поле по назначению должно принимать HTML (описание товара, статья, письмо), добавьте его в список активных полей. Для таких полей фильтр не экранирует HTML-теги, но продолжает контролировать другие типы атак.
Исключаемые области
Отдельные скрипты или части сайта можно исключить из-под контроля фильтра целиком. Делать это следует точечно и только когда исключение действительно необходимо:
- Определите по журналу вторжений конкретный скрипт и поле, вызывающие ложное срабатывание.
- Добавьте поле в исключения через настройки фильтра или программно.
- Проверьте, что штатная работа восстановилась, а защита остальных полей сохранилась.
Не отключайте фильтр целиком ради одного проблемного поля — используйте точечные исключения.
Журнал вторжений и мониторинг
Все срабатывания фильтра при включённом логировании попадают в Настройки → Проактивная защита → Журнал вторжений. По журналу удобно:
- отличать реальные атаки от ложных срабатываний;
- находить поля и скрипты, требующие исключений;
- выявлять IP-адреса с аномальной активностью для внесения в стоп-лист;
- оценивать общий уровень враждебного трафика.
Для каждого события фиксируются тип угрозы, адрес нарушителя, URL и переданные данные. Периодический просмотр журнала — обязательная часть эксплуатации фильтра, особенно в первые недели после включения на боевом сайте.
Частые ошибки
Типичные проблемы при работе с проактивным фильтром и способы их избежать:
- Отключение фильтра из-за ложного срабатывания. Вместо полного выключения добавьте конкретное поле в активные или в исключения — защита остального сайта останется в силе.
- Работа без журнала. Если логирование выключено, вы не увидите ни атак, ни причин ложных срабатываний. Ведите журнал хотя бы на период отладки.
- Слишком жёсткое действие сразу на проде. Режим «показ предупреждения» или занесение в стоп-лист без предварительной обкатки может блокировать реальных пользователей. Начните с очистки данных и логирования, затем ужесточайте.
- Массовое добавление полей в активные. Каждое активное поле — потенциальная брешь для XSS. Открывайте HTML только там, где это действительно нужно.
- Игнорирование сторонних модулей. Уязвимый модуль в маркетплейсе — частая точка входа; фильтр снижает риск, но не заменяет обновление компонентов.
- Проверка только публичной части. После настройки исключений протестируйте и админку, и импорт/экспорт, и формы обратной связи.
Итог
Проактивный фильтр — базовый и один из самых эффективных механизмов защиты 1С-Битрикс. Он экранирует опасные данные во всех входящих запросах и прикрывает даже те модули, которые не рассчитаны на атаки.
Рекомендуемая последовательность внедрения: включить фильтр в режиме очистки данных с ведением журнала, несколько дней понаблюдать за срабатываниями, настроить точечные исключения для легитимных HTML-полей и только затем при необходимости ужесточать реакцию до стоп-листа или предупреждения. Такой подход даёт надёжную защиту без риска заблокировать реальных посетителей.