Как отключить правило 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. Могу ли я установить его разрешенным только для одного домена, поскольку он является единственным, имеющим проблему на этом выделенном сервере, или, возможно, есть лучший способ исключить теги таблиц?

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам