如何防止接口被恶意刷量?除了限流,还有哪些防护手段?
- 标签:后端、系统设计、场景题、安全
🏛 业务架构师
防接口恶意刷量(限流之外的手段),我把手段按**"识别 → 抬高成本 → 业务兜底"**组织,核心思想:攻防是成本博弈——把攻击者的单位成本抬到收益之上,同时守住真实用户的体验。
一、识别(看清对面是谁)
- 设备指纹:采集硬件/行为特征生成设备 ID——IP 易换(代理池几块钱一天),设备难换,它是纵向识别的锚点;同设备批量换账号 = 羊毛党画像
- 行为分析:真人有鼠标轨迹、页面停留、滚动;脚本请求间隔均匀(随机化也留统计特征)、直接打接口不经过页面
- 关系网络:同 IP 段/同设备/同收款账号的账号聚类——羊毛党的规模化必然产生关联,抓关联比抓个体有效
二、抬高攻击成本(分层设障)
- 人机验证分级挑战:可疑流量弹滑块/点选,正常用户无感——别全量弹(验证码每难一分,转化掉一分)
- 接口签名 + 加密参数:签名校验 + 参数加密 + 代码混淆,让脚本不能直接构造请求——防的是脚本小子,高手拦不住但抬门槛已筛掉 90%
- 蜜罐字段:页面埋隐藏字段,脚本会填、真人不可见——填了即标记
- 风控评分实时拦截:多维度(频率、行为、设备、画像)综合评分,低分限流/弹验证/拒绝
三、业务兜底(防线被突破时)
- 预算封顶:营销活动总量上限,达到即熔断——最后的钱袋子,必须有
- 奖励延迟发放:中奖/返现 T+1 延迟发放,留给风控事后核验清洗的时间窗
- 名单体系:黑名单实时生效、灰名单观察、白名单免打扰
四、对抗运营(长期战)
把每次攻击的特征沉淀进规则库和模型,攻防是持续博弈,没有一劳永逸;同时监控"刷量成本指标"(被拦截请求的代理 IP 比例等)评估对抗烈度。
收尾:防护预算按资损面分配——营销接口全副武装,查询接口限流足矣。目标不是消灭攻击,是让攻击变得不划算。
🏗 系统架构师
除了限流,防刷量要靠纵深防御:让攻击者"进不来(认证)、装不像(人机识别)、划不来(成本)、跑不掉(追溯)"。
1. 准入与身份层
- 实名与账号成本:接手机号/设备注册门槛,一机一号策略;新账号行为限制(注册 24h 内功能受限),黑产批量养号成本剧增
- 访问凭证签名:接口要求签名 + 时间戳 + nonce(防脚本直调),SDK 内置密钥白盒保护提高逆向成本;关键接口走 HTTPS 证书绑定(pinning)防中间人代刷
2. 人机识别层
- 设备指纹:采集硬件与行为特征生成稳定 ID,识别模拟器、群控、改机工具(同设备上千账号直接封)
- 行为验证码:高频敏感动作前滑动/智能无感验证(详见验证码专题),不打扰正常人、拦住脚本
- 行为序列分析:正常人请求有随机性与页面浏览轨迹,脚本直调接口、间隔均匀(方差小)、无前置页面行为——用这些特征打分
3. 业务规则层
- 业务规则围栏:单账号/设备/IP 的领取次数、参与频次限制;异常模式(同收货地址、同支付账号多 ID 参与)识别
- 资源前置条件:领券/下单要求实名、会员等级、浏览时长,把刷量门槛抬到业务层
- ** Honeypot 蜜罐**:隐藏接口与隐藏字段,正常人绝不触碰,一碰即标记抓取全量行为特征
4. 风控对抗层(核心竞争力)
- 实时风控引擎:规则 + 模型(设备聚类、IP 信誉库、行为图谱——设备-账号-IP 关联图挖黑产团伙)对每个请求打分,低分拦截、中分质询(验证码)、高分放行
- 名单体系:黑白灰名单动态更新,秒级下发到网关
- 对抗升级:黑产换设备农场,就升级设备指纹算法;换 IP 池,就上 IP 信誉实时库——防刷是持续对抗不是一次性建设
5. 追溯与威慑:全量请求留痕(脱敏审计日志),法律取证通道;与云厂商 WAF/高防联动扛大流量 DDoS 型刷量。
一句话:身份抬成本、指纹识机器、规则围栏、风控图谱聚类团伙、名单秒级生效。
💻 全栈开发专家
防刷量我的框架是事前拦截 → 事中识别 → 事后追责三道防线,限流只是事前的第一小项。
事前:提高攻击成本
- 人机校验:高频操作前置滑块/行为验证码,脚本成本直接上升。
- 设备指纹:采集设备特征(canvas 指纹、传感器、环境变量)生成 deviceID,同一设备批量注册/请求直接关联识别。
- 客户端挑战:JS 动态挑战(下发混淆算法算 token)、PoW 工作量证明,让每次请求对攻击者有计算成本。
- 签名与防抓包:请求签名 + 证书锁定,接口不接受裸调用。
事中:风控规则识别
- 规则引擎:IP 维度(同 IP 高频、IDC IP 段、代理池特征)、账号维度(注册时间短、行为序列异常——0.1 秒完成下单全流程不是人)、业务维度(同一收货地址/手机号批量下单)。
- Redis 实时指标:
IP:5min 计数、deviceID:注册数、账号:领券数,超阈值直接拦截或升级验证。 - WAF/CDN:Cloudflare/阿里云 WAF 拦已知爬虫特征、Bot 管理。
事后:业务约束与追责
- 业务侧硬约束是最可靠的:一手机号一份优惠、实名限购、中奖需绑定可提现账户——再能刷,总量被锁死。
- 离线风控:模型识别批量特征(同一支付账号、同一设备农场),批量封号 + 追回权益。
- 黑名单库:手机号/设备/IP 黑名单持续沉淀,跨业务复用。
架构要点
风控决策要走异步旁路(同步只查 Redis 轻规则 + 本地缓存的黑名单),重规则离线算完回写,别把风控做成新瓶颈;命中记录全量落库供复盘,规则命中率每周 review 调优。
一句话:限流防"量",指纹和规则防"假",业务约束防"贪",三层缺一不可。