在HTTP接口防护中,IP限流(即基于IP地址的请求频率限制)是一种常见的安全与防刷手段。限流阈值并没有统一的标准,而是根据业务场景、接口重要性、用户行为特征和系统承载能力来设定。以下是一些常见场景下的参考阈值:
1. 通用Web API 接口
- 阈值建议:100~1000 次/分钟
- 说明:
- 对于普通用户使用的API(如登录、注册、查询等),通常设置为每分钟100到500次较为合理。
- 高频接口(如心跳检测、轮询)可适当放宽至1000次/分钟。
2. 登录接口(防暴力破解)
- 阈值建议:5~10 次/分钟 或 20 次/小时
- 说明:
- 登录接口是攻击重点,应严格限制。
- 可结合账户锁定或验证码机制使用。
- 示例:连续5次失败后触发验证码,10次后封禁IP一段时间。
3. 注册/短信验证码接口
- 阈值建议:
- 同一IP每日最多发送10~20次短信验证码
- 每分钟不超过2~3次
- 说明:
- 防止恶意刷短信,避免资损。
- 可叠加手机号维度限流。
4. 高并发公开接口(如搜索、商品列表)
- 阈值建议:1000~5000 次/分钟
- 说明:
- 面向公众用户,需支持一定并发。
- 但仍需防止爬虫或脚本滥用。
5. 后台管理接口或敏感操作
- 阈值建议:10~50 次/分钟
- 说明:
- 敏感操作(如删除、修改权限)应更严格。
- 建议结合身份认证、操作审计等措施。
常见时间粒度与单位
| 时间单位 | 常见阈值范围 | 适用场景 |
|---|---|---|
| 每秒 | 1~10 次 | 实时性高、防刷关键接口 |
| 每分钟 | 60~1000 次 | 大多数API接口 |
| 每小时 | 1000~10000 次 | 宽松策略、注册类接口 |
| 每天 | 1万~10万次 | 极宽松或白名单IP |
补充建议
- 分层限流:
- IP + 用户ID + 设备指纹 多维度组合限流更有效。
- 动态调整:
- 根据流量高峰、攻击事件动态调整阈值。
- 异常行为识别:
- 结合UA、请求头、行为模式判断是否为爬虫或机器人。
- 白名单机制:
- 对可信IP(如CDN节点、合作伙伴)放宽容忍度。
- 渐进式封禁:
- 超限后先警告、加验证码,再短期封禁,最后长期拉黑。
总结
没有“标准”的IP限流阈值,但常见参考如下:
| 接口类型 | 建议阈值(每分钟) |
|---|---|
| 登录/验证码 | 5~20 次 |
| 普通API | 100~500 次 |
| 高频公开接口 | 1000~5000 次 |
| 后台管理接口 | 10~50 次 |
实际部署中建议通过日志分析正常用户行为,再设定合理阈值,并配合监控告警机制及时响应异常流量。
云小栈