FilterMds#

Действие FilterMds предназначено для отправки сообщения, полученного на любом этапе преобразования в цепочке в фильтр ModSecurity. Собственно, основное назначение - проверка тех данных, которые не могут быть проверены напрямую в исходном запросе, либо получаются путем преобразований.

Параметры:

Название

Обязательность

Допустимые значения

Описание

filter_mds

+

см. параметр filter_mds

Задает описание фильтров ModSecurity.

connect_timeout

-

Число с суффиксом: ms - миллисекунды; s - секунды; m - минуты; h - часы; d - дни; w - недели; M - месяцы, 30 дней; y - годы, 365 дней

Время ожидания подключения к фильтру, по умолчанию параметр не задан.

read_timeout

-

Число с суффиксом: ms - миллисекунды; s - секунды; m - минуты; h - часы; d - дни; w - недели; M - месяцы, 30 дней; y - годы, 365 дней

Время ожидания между двумя последовательными попытками чтения, по умолчанию параметр не задан.

write_timeout

-

Число с суффиксом: ms - миллисекунды; s - секунды; m - минуты; h - часы; d - дни; w - недели; M - месяцы, 30 дней; y - годы, 365 дней

Время ожидания между двумя последовательными попытками записи, по умолчанию параметр не задан.

request_method

-

Строковое значение: "put"; "post"; "options"; "get"; "delete"; "trace".

Содержит HTTP-метод, который будет использоваться для отправки запроса на фильтр Modsecurity, по умолчанию POST.

protocol_version

-

Строковое значение: "HTTP/1.0", "HTTP/1.1", "HTTP2"

Содержит версию протокола, который будет использоваться для отправки запроса на фильтр Modsecurity, по умолчанию HTTP/1.1.

headers

-

Последовательность вида "name: имя заголовка, value: значение заголовка"

Содержит последовательность заголовков , которые будут сформированы для отправки на фильтрацию, в value можно использовать переменные.

response_header_set_variable

-

Последовательность вида "header: имя заголовка, var: название переменной"

Позволяет пробрасывать заголовки ответа от фильтра MDS в значения переменной. В header задается название заголовка, в var название переменной.

conditions

-

Последовательность вида "var: имя_переменной, val: значение_переменной, operator: оператор"

Список условий по которым определяется, заблокировал фильтр запрос или нет. По умолчанию: 'filter_status < 400'. В качестве условий могут использоваться дополнительные переменные. filter_status - HTTP статус ответа от фильтра MDS; filter_hdr_имя_заголовка - заголовок ответа от фильтра (важно - в отличии от стандартного NGinx поведения в именах заголовков в названиях переменных, здесь символы "-" не преобразуются в "_", а сохраняются как есть.

Пример:

chains:
      request_chains:
        - actions:
           - action: FilterMds
             params:
               filter_mds:
                 enabled: true
                 config:
                   SecAuditLogRelevantStatus: "500"
                 rules:
                  - sowa-http
               connect_timeout: 10s 
          message: $clj_request_body