概述WAF通过规则集识别常见攻击向量,Bot管理通过指纹与行为挑战拦截非人类或恶意自动化流量。两者协同可在入口层降低风险并保障后端稳定性。关键实践与参数规则集:启用CRS规则并按业务调优误报阈值指纹识别:UA、Accept-Language、TLS指纹、请求节律与路径特征行为挑战:JS挑战或验证码对可疑流量进行二次验证速率限制:按IP、Key、路径维度,令牌桶 rate=10r/s burst=50审计:记录命中规则、限流与挑战事件,便于复盘示例/配置/实现# ModSecurity + CRS
SecRuleEngine On
Include /usr/local/modsecurity/crs-setup.conf
Include /usr/local/modsecurity/rules/*.conf
SecRule REQUEST_HEADERS:User-Agent "@rx (curl|bot|scrapy|wget)" \
"id:100100,phase:1,deny,status:403,log,msg:'Blocked suspicious UA'"
# NGINX 速率限制
limit_req_zone $binary_remote_addr zone=ip:10m rate=10r/s;
server {
location /api/ {
limit_req zone=ip burst=50 nodelay;
proxy_pass http://api;
}
}
-- OpenResty 行为挑战(示意)
local cookie = ngx.var.cookie_challenge
if not cookie then
ngx.header['Set-Cookie'] = 'challenge=1; Path=/; HttpOnly'
ngx.say('<script>document.cookie="challenge=1";location.reload()</script>')
return ngx.exit(200)
end
验证攻击特征:使用常见扫描UA与Payload请求,命中CRS与自定义规则并返回403速率限制:并发压测超过阈值,返回429比例与后端稳定性提升行为挑战:首次访问命中挑战,二次访问带Cookie通过审计:日志中记录规则ID、IP与请求路径,便于追溯注意事项规则需结合业务场景调优,避免误杀正常流量行为挑战对可用性有影响,应按风险精准触发速率限制与全局/分布式限流协同,防止绕过定期复盘拦截效果与误报比,持续优化

发表评论 取消回复