You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7下Apache2+PHP5环境特定URI的ModSecurity白名单配置咨询

ModSecurity指定URI绕过校验操作步骤(CentOS 7 + Apache2环境)

步骤1:获取触发拦截的规则ID

首先查看ModSecurity审计日志,定位拦截对应的规则ID:

grep "你的请求URI" /var/log/httpd/modsec_audit.log

在返回的日志内容中找到格式为[id:xxxxxx]的字段,xxxxxx就是触发拦截的规则ID,记录下来备用。

步骤2:添加自定义绕过规则

优先选择粒度最细的绕过方案,降低安全风险,以下三种方案按安全性从高到低排列:

方案1:仅对指定URI的指定GET参数绕过对应规则(最安全)

适合当前仅UUID参数触发拦截的场景,编辑ModSecurity自定义规则文件:

vi /etc/httpd/modsecurity.d/activated_rules/custom_bypass.conf

添加如下规则:

SecRule REQUEST_URI "@streq /你的目标URI路径" "id:10001,phase:2,nolog,allow,ctl:ruleRemoveTargetById=xxxxxx;ARGS:uuid"
参数说明:

  • 10001:自定义规则ID,可使用10000以上未被占用的任意数值
  • /你的目标URI路径:替换为实际需要放行的URI,例如/user/query
  • xxxxxx:替换为步骤1中获取到的触发拦截的规则ID
  • ARGS:uuid:替换为实际接收UUID的GET参数名

方案2:仅对指定URI绕过触发的单条规则(安全性中等)

适合该URI下多个参数都可能触发同一条规则的场景,规则内容如下:

SecRule REQUEST_URI "@streq /你的目标URI路径" "id:10002,phase:1,nolog,allow,ctl:ruleRemoveById=xxxxxx"

方案3:对指定URI完全关闭ModSecurity校验(不推荐,仅临时测试使用)

会导致该URI完全失去安全防护,规则内容如下:

SecRule REQUEST_URI "@streq /你的目标URI路径" "id:10003,phase:1,nolog,allow,ctl:ruleEngine=Off"
如果需要匹配多个同前缀URI,可以将匹配方式改为正则:将@streq替换为@rx ^/前缀/,例如@rx ^/api/可匹配所有/api/开头的URI。

步骤3:生效配置

首先验证Apache配置语法是否正确:

apachectl configtest

返回Syntax OK后重启Apache服务生效:

systemctl restart httpd

步骤4:验证效果

访问目标URI携带UUID格式的GET参数,确认不再被拦截,也可再次查看ModSecurity审计日志确认没有对应拦截记录。


内容的提问来源于stack exchange,提问作者FL370

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:36:07