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

Как отключить правило mod_security2 (ложное срабатывание) для одного домена на centos 5

Привет, у меня включен mod_security на сервере centos5, и одно из правил не позволяет пользователю публиковать текст в форме. Текст правильный, но в нем есть слова «создать» и HTML-код. <table> тег позже в нем, поэтому он вызывает ложное срабатывание.

Ошибка, которую я получаю, приведена ниже:

[Sun Apr 25 20:36:53 2010] [error] [client 76.171.171.xxx] ModSecurity: Access denied with code 500 (phase 2). Pattern match "((alter|create|drop)[[:space:]]+(column|database|procedure|table)|delete[[:space:]]+from|update.+set.+=)" at ARGS:body. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "352"] [id "300015"] [rev "1"] [msg "Generic SQL injection protection"] [severity "CRITICAL"] [hostname "www.mysite.com"] [uri "/node/181/edit"] [unique_id "@TaVDEWnlusAABQv9@oAAAAD"]

и вот /usr/local/apache/conf/modsec2.user.conf (строка 352)

#Generic SQL sigs SecRule ARGS "((alter|create|drop)[[:space:]]+(column|database|procedure|table)|delete[[:space:]]+from|update.+set.+=)" "id:1,rev:1,severity:2,msg:'Generic SQL injection protection'"

У меня есть следующие вопросы:

  1. Что мне делать, чтобы внести в белый список или разрешить выполнение этого правила?
  2. Какой файл мне создать и где?
  3. Как мне изменить это правило?
  4. Могу ли я настроить его так, чтобы он был разрешен только для одного домена, поскольку это единственный, у которого есть проблема на этом выделенном сервере, или, возможно, есть лучший способ исключить теги таблицы?

Спасибо, парни

Вы можете отключить ModSecurity для определенного URL-адреса с помощью директивы LocationMatch, примерно так:

<LocationMatch "/node/181/edit">
  <IfModule mod_security2.c>
    SecRuleEngine Off 
  </IfModule>
</LocationMatch>

http://www.atomicorp.com/wiki/index.php/Mod_security