Yihui’s Blog

线上接口被恶意刷流量,如何解决?

日期:2026-07-12
标签:#面试 #八股 #后端 #安全 #限流 #场景题

一句话答案

在 CDN/WAF、网关和业务层做分层识别与限流,结合身份、IP、设备、行为和成本风险挑战请求,同时保护下游容量并保留申诉与审计。

面试口语版

先止损并区分 DDoS、爬虫、撞库还是业务薅羊毛。网络层让 CDN/高防清洗流量,WAF 拦截已知规则;网关按 IP、账号、设备、接口和租户做令牌桶与并发限制,返回 429 和 Retry-After。业务层不能只看 IP,要结合登录状态、设备指纹、行为速度、请求序列和风险评分,对可疑请求增加验证码、二次认证或人工审核。数据库、缓存和第三方调用各自设置并发上限、熔断和降级,避免前层漏网流量拖垮核心资源。

关键细节

  • IP 可代理或共享,单维度封禁易误伤。
  • 攻击者可低频分布式访问,需要行为关联和账号成本。
  • 验证码应按风险触发,否则影响正常用户并可能被打码平台绕过。
  • 保留规则命中、风险评分和处置审计,支持快速回滚。

面试官追问

  1. 分布式低频攻击如何识别?
  2. Redis 限流器挂了怎么办?
  3. 如何避免限流误伤正常用户?

面试官追问参考答案

1. 分布式低频攻击如何识别?

关联账号、设备、ASN、请求模板、时间分布、目标资源和行为路径,使用滑动窗口及风险模型识别群体相似性。单 IP 不超限但同一目标被大量新设备访问仍可触发全局资源限额。

2. Redis 限流器挂了怎么办?

各网关保留本地保底令牌桶和静态安全阈值,高风险资金接口 fail-close,普通读接口可按更严格本地额度 fail-open。Redis 恢复后渐进同步配额,避免瞬间放量。

3. 如何避免限流误伤正常用户?

基于历史基线分级限流,优先软挑战、排队和降级,再封禁;使用多维信号而非单 IP,给可信用户和关键客户更高配额。灰度规则并监控误拒率、申诉和转化指标。

学习清单

  • 能设计网络、网关和业务三层防护。
  • 理解风险挑战与误伤权衡。
Maintained by · YihuiEdit on GitHub

Keep reading

View all posts