Как отключить правило 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 ответ
Вы можете отключить ModSecurity для определенного URL с помощью директивы LocationMatch, что-то вроде этого:
<LocationMatch "/node/181/edit">
<IfModule mod_security2.c>
SecRuleEngine Off
</IfModule>
</LocationMatch>