Как отключить modsecurity только для определенного каталога. Я получаю ошибки в phpMyAdmin, вызванные срабатыванием modsecurity на основе правил. У меня настроены следующие файлы:
# /etc/httpd/modsecurity.d/modsecurity_crs_15_customrules.conf
<LocationMatch "^/phpMA/">
SecRuleEngine Off
</LocationMatch>
# /etc/httpd/modsecurity.d/modsecurity_crs_60.custom.conf
<LocationMatch '^/phpMA/*'>
SecRuleRemoveById 950004
SecRuleRemoveById 950005
SecRuleRemoveById 950006
SecRuleRemoveById 960010
SecRuleRemoveById 960012
</LocationMatch>
Из того, что я могу найти, первый файл должен отключить его, но он все еще отключается, поэтому я попытался добавить идентификаторы правил, которые он отключает, в файл 60, но он все еще жалуется.
Я использую следующие пакеты на CentOS 5.3:
SecRuleEngine Off должен работать. Вы пытались поместить SecRuleEngine в каталог:
<Directory /var/www/site/phpMA>
SecRuleEngine Off
</Directory>
вместо LocationMatch?
На некоторые серверов и веб-хостов, можно отключить ModSecurity через .htaccess
, но только целиком (а не отдельные правила).
Чтобы ограничить это конкретными URL-адресами, вы можете указать регулярное выражение в <If>
заявление ниже ...
### DISABLE mod_security firewall
### Some rules are currently too strict and are blocking legitimate users
### We only disable it for URLs that contain the regex below
### The regex below should be placed between "m#" and "#"
### (this syntax is required when the string contains forward slashes)
<IfModule mod_security.c>
<If "%{REQUEST_URI} =~ m#/admin/#">
SecFilterEngine Off
SecFilterScanPOST Off
</If>
</IfModule>
Никогда не отключайте все правила !! Это может вызвать серьезные проблемы с безопасностью!
Вам нужно проверить файл журнала modsecurity с помощью
tail -f /var/log/apache2/modsec_audit.log
и исключить каждое правило одно за другим, воспроизводя ошибки в интерфейсе phpmyadmin.
Затем добавьте:
<Directory /path/to/phpmyadmin>
<IfModule security2_module>
SecRuleRemoveByTag "WEB_ATTACK/SQL_INJECTION"
{And other rules you need to disable ...}
</IfModule>
</Directory>
в /etc/apache2/mods-enabled/modsecurity.conf
Тег, который вам нужно удалить, будет в файле журнала, например этот. Полное описание правил удаления для конкретной папки см. В Github wiki проекта.