如何禁用仅针对特定目录的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>从我可以找到的第一个文件应该禁用它,但它仍然运行,所以我尝试添加规则is,它是绊倒到60个文件,但它仍然抱怨。
我在CentOS 5.3上运行以下软件包:
发布于 2009-08-21 15:53:57
SecRuleEngine Off必须工作。您是否尝试过将SecRuleEngine放在目录中:
<Directory /var/www/site/phpMA>
SecRuleEngine Off
</Directory>而不是LocationMatch?
发布于 2016-09-01 02:07:50
在某些服务器和网络主机上,可以通过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>发布于 2016-03-27 23:59:48
永远不要破坏所有的规则!!这可能会引起严重的安全问题!
您需要使用
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-启用/modsecurity.conf
您需要删除的标记将在日志文件中,如这。有关删除特定文件夹的规则的完整说明,请参阅项目的Github wiki。
https://serverfault.com/questions/57210
复制相似问题