Web 应用防火墙规则配置:构建有效的 WAF 防护体系
WAF(Web 应用防火墙)是保护 Web 应用安全的核心组件。正确的规则配置决定了 WAF 的有效性。
一、WAF 规则类型
| 规则类型 | 说明 | 示例 |
|---|---|---|
| 黑名单 | 已知攻击特征匹配 | SQL 注入特征 |
| 白名单 | 仅允许指定模式 | IP 白名单 |
| 速率限制 | 请求频率控制 | 每分钟 100 次 |
| 行为分析 | 异常行为检测 | 爬虫识别 |
二、OWASP CRS 规则集
OWASP Core Rule Set 是开源 WAF 规则的行业标准。
# SQL 注入检测
SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|REQUEST_COOKIES_NAMES "/((\%3C)|<)[^
]+((\%3E)|>)/" "phase:2,deny,t:none,t:normalisePath, msg:'Cross-site Scripting (XSS) Attack'"
# 路径遍历检测
SecRule REQUEST_URI|ARGS|REQUEST_HEADERS "@rx /etc/passwd" "phase:2,deny,t:none, msg:'Path Traversal Attack'"
三、Cloudflare WAF 配置
# 自定义规则示例
规则名称: Block SQLi
表达式: http.request.uri.path contains "wp-admin"
and http.request.method in {"POST"}
and not ip.src in {192.0.2.0/24}
动作: Block
规则名称: Rate Limit API
表达式: http.request.uri.path starts with "/api/"
and http.request.method in {"POST"}
动作: Managed Challenge
速率限制: 100 次/10分钟
四、误报处理
| 误报类型 | 处理方法 |
|---|---|
| IP 误封 | 添加到白名单 |
| 合法参数误判 | 创建规则例外 |
| 正常行为误判 | 调整敏感度 |
| 特殊场景 | 创建独立排除规则 |
五、最佳实践
- 先设置为日志模式,确认无误后再开启拦截
- 定期更新规则库
- 监控 WAF 日志,及时处理误报
- 结合 IP 声誉库和地理定位