Назад | Перейти на главную страницу

mod_security в Apache 2.4: Могу ли я отключить все правила для определенного элемента запроса?

У меня есть приложение, обслуживаемое Apache, в котором включен mod_security, и я успешно настраиваю исключения, чтобы избежать ложных срабатываний, используя:

SecRuleUpdateTargetById 981260 !ARGS:'/^PD-.*/'

Но теперь я столкнулся со случаем, когда аргумент запроса содержит пароль, который потенциально может содержать все возможные комбинации символов, которые mod_security будет отмечать как ложное срабатывание. Итак, моим наивным решением было бы отключить все правила для этого конкретного аргумента примерно так:

SecRuleUpdateTargetById * !ARGS:'/^PD-.*/'

Возможно ли такое?

Нет, это невозможно. Хотя можно отключить несколько правил одновременно на основе идентификатора тега, поэтому все правила, помеченные этим тегом, будут отключены, например:

SecRuleUpdateTargetByTag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION" !ARGS:'/^PD-.*/'

Если аргумент потенциально не соответствует нескольким различным тегам правил (например, SQL-инъекция и XSS), вам придется ввести несколько SecRuleUpdateTargetByTag исключения.

Это также зависит от того, последовательно ли указаны теги в наборе правил. В основном они входят в OWASP CRS, но не уверены в других наборах правил ModSecurity.

Подробнее см. Здесь: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRuleUpdateTargetByTag

Вы можете аналогичным образом использовать SecRuleUpdateTargetByMsg вместо (https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRuleUpdateTargetByMsg)