Глобальные http-методы белого списка ModSecurity

есть ли возможность создать правило белого списка для внесения в белый список всех запросов GET на этапе 1?

Мой файл custom_rule работает — я тестировал различные правила раньше, но я действительно не знаю, как отключить все правила для запросов GET.

Что-то вроде: SecRule REQUEST_METHOD "GET" "фаза: 1, журнал, проход"


person Creapos    schedule 25.10.2015    source источник


Ответы (1)


Pass просто перейдет к следующему правилу. Вы хотите использовать allow:

Обратите внимание, что вы также, вероятно, не хотите записывать это правило в журнал, и вы должны дать ему идентификатор (обязательно для ModSecurity 2.7 и выше):

SecRule REQUEST_METHOD "GET" "phase:1,id:1000;nolog,allow"

Также обратите внимание, что разрешение не работает в режиме DetectionOnly, так как это разрушительное правило, которое всегда заставляло меня думать, что это плохой способ. Поэтому вам нужно принудительно включить механизм правил, чтобы он работал там.

У меня есть следующие правила, позволяющие заносить в белый список статическое содержимое, если это помогает (необходимо настроить для вашей конкретной среды):

#Allow any GET & HEAD requests, where no parameters passed, for static content file types
SecRule REQUEST_METHOD "^(GET|HEAD)$" "phase:1,id:'1000',chain,allow,nolog"
  SecRule &ARGS "@eq 0" "chain"
  SecRule REQUEST_FILENAME ".*\.(css|eot|gif|htm|html|jpeg|jpg|js|pdf|png|svg|ttf|woff|woff2)$" "t:lowercase,ctl:ruleEngine=On"

#Allow any GET & HEAD requests, where no parameters passed, for default index files (e.g. /somepage/)
#except for dynamic content urls (which start with api or application):
SecRule REQUEST_METHOD "^(GET|HEAD)$" "phase:1,id:'1001',chain,allow,nolog"
  SecRule &ARGS "@eq 0" "chain"
  SecRule REQUEST_URI "/$" "chain"
  SecRule REQUEST_URI "!^/(api|application)" "t:lowercase,ctl:ruleEngine=On"

Дайте мне знать, если у вас есть какие-либо вопросы по этому поводу.

person Barry Pollard    schedule 26.10.2015