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