对敏感路径做访问频率限制是防范数据枚举攻击最直接有效的手段,需识别可遍历且返回业务数据的路径,按URI正则匹配、IP维度统计、差异化阈值(如10次/分钟)配置拦截+15~30分钟封禁,并叠加参数校验、数据脱敏、日志告警等形成闭环防护。

对敏感路径做访问频率限制,是防范数据枚举攻击最直接有效的手段之一。攻击者常通过自动化脚本反复请求类似 /api/user/123、/admin/info?id=456 这类带ID参数的接口,试探性获取用户、订单、配置等数据。限制单IP在单位时间内对这类路径的请求次数,能显著抬高攻击成本,让批量探测失效。
识别并标记敏感路径
不是所有接口都需要限频,重点应放在“可被遍历”且“返回业务数据”的路径上:
- 典型敏感路径示例:/api/v1/user/{id}、/order/detail?id=、/admin/config/get、/api/data/export
-
识别方法:结合API资产智能学习功能自动发现;人工梳理Swagger文档或后端路由表;重点关注含动态参数(如
{id}、?id=、?sn=)且响应体含JSON数据的接口 - 避免误伤:排除静态资源(.js/.css/.png)、登录页、首页等高频但无风险路径;区分内部调用与外部请求(可通过Referer或自定义Header标识)
配置精准频率限制规则
仅靠全局限频不够,需按路径粒度设置差异化阈值:
-
URI匹配方式选正则:例如
/api/v1/user/\d+或/order/detail\?id=\d+,覆盖所有ID类请求,避免逐条配置 - 合理设阈值:对普通用户,建议 10次/分钟;对管理类接口,可严至 3次/分钟;时间单位优先选“分钟”,兼顾防护效果与用户体验
- 作用对象明确:选择“客户端IP”作为统计维度,而非Cookie或Referer(易伪造);若已接入统一认证,可叠加用户ID维度做二次校验
- 动作设为拦截+惩罚:触发后立即返回403,并同步启用攻击惩罚——封禁该IP 15~30分钟,阻断连续探测
配合其他防护形成闭环
频率限制 alone 不足以完全防住高级枚举,需叠加以下措施:
- 参数合法性校验:后端对ID类参数做存在性验证(查库确认ID真实),不存在时统一返回404而非200+空数据,避免泄露“ID是否有效”这一信息
- 敏感数据脱敏输出:即使请求合法,响应中身份证、手机号等字段也应默认脱敏(如138****1234),降低数据价值
- 日志与告警联动:将高频触发限频的IP写入安全日志,当同一IP在1小时内触发3次以上,自动推送企业微信/邮件告警
- 隐藏路径规律:避免使用纯数字ID暴露顺序性,改用UUID、短链ID或服务端生成的不可预测Token
上线前必须做的验证
规则生效前,务必模拟真实场景测试,防止影响正常业务:
- 用Postman或curl发起合法请求,确认未被误拦
- 模拟脚本快速轮询(如每秒5次请求同一路径),验证是否准确拦截并封禁
- 检查WAF控制台“防护事件”页面,确认日志中记录的触发路径、IP、时间戳与预期一致
- 观察源站监控指标(如5xx错误率、响应延迟),确保限频未引发上游服务压力异常

















