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

белый список URI на обратном прокси-сервере Apache с поддержкой mod_security

У меня есть apache 2.2.29-1.4 с mod_security 2.8.0-5.25, который является обратным прокси-сервером с mod_proxy_http для локального Java-приложения.

У меня есть ложные срабатывания по некоторым URL-адресам, и я хотел бы внести некоторые правила OWASP в белый список только для указанных URI.

В настоящее время глобальный белый список правила с

SecRuleRemoveById 960010

отлично работает

Но оба

<LocationMatch ^/(myapp/mymethod.do.*)$>
SecRuleRemoveById 960010
  ProxyPassMatch http://localhost:8080/$1
</LocationMatch>

и

<Location "/myapp/mymethod.do">
SecRuleRemoveById 960010
</Location>
ProxyPass /myapp/mymethod.do http://localhost:8080/myapp/mymethod.do
ProxyPassReverse /myapp/mymethod.do http://localhost:8080/myapp/mymethod.do

не заносите правило в белый список.

Я также попытался добавить новые правила mod_security, чтобы изменить существующие, но добавление URI в белый список всегда терпит неудачу ...

Любое понимание?

960010 - это правило фазы 1. Фаза 1 проходит перед <location> директивы обрабатываются.

Поэтому вам нужно написать правило, в котором ModSecurity будет выполнять фильтрацию местоположения за вас, а не за Apache.

Что-то вроде этого:

SecRule REQUEST_URI "^/myapp/mymethod.do" "phase:1,id:12345,nolog,ctl:ruleRemoveById=960010"

Это в основном создает другое правило, которое срабатывает только для этого URL-адреса, и удаляет это правило. Обратите внимание, что это необходимо добавить ДО того, как будет определено правило 960010. Я дал идентификатор правила 12345, но изменил его на любой свободный идентификатор менее 100000 (выше это зарезервировано для наборов правил, таких как OWASP).

Подробнее обо всем синтаксисе в справочном руководстве: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual