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

如何编写匹配开头特定User-Agent的ModSecurity规则?

ModSecurity规则问题修正方案

现有规则的问题点

  • 缺少开头匹配锚点:你的需求是匹配User-Agent开头的指定字符串,正则必须添加^锚定字符串起始位置,现有规则未加锚点,只会匹配任意位置出现的对应关键词,不符合需求。
  • 额外注意:你配置了t:lowercase参数,会先将User-Agent的值全部转为小写后再执行正则匹配,后续新增匹配关键词时统一使用小写即可,无需处理大小写兼容。

修正后的规则

SecRule REQUEST_HEADERS:User-Agent "@rx ^(?:yandex|daum|bad-agent name)" \
"msg:'Spiderbot blocked - UA: %{REQUEST_HEADERS:User-Agent}',id:10008,log,t:lowercase,drop,phase:1"

补充说明

ModSecurity的@rx操作符默认采用标准PCRE正则语法,你熟悉的通用正则规则都可以直接使用,无需适配特殊语法。如果需要测试规则匹配效果,可以先将drop动作改为log,deny,status:403,验证无误拦截后再调整为拦截动作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:18:04