一、网络层防护(第一道屏障,防火墙/IP白名单/HTTPS加密)
1. 防火墙(硬件/云防火墙)
- 基础能力:过滤非法数据包、封禁恶意端口、拦截端口扫描;
- 抗攻击:限流清洗DDoS、封禁高频攻击IP,抵御大量无效连接;
- 拦截恶意流量:过滤携带攻击载荷的报文,阻断蠕虫、扫描探测行为。
局限:只能基于IP、端口、流量包特征拦截,无法区分同一IP下多个正常/恶意用户。
2. IP白名单
适用场景:内部服务调用、第三方合作对接、高危核心接口(开通会员、支付、内部审核)
- 实现:配置中心(Apollo/Nacos)动态维护,量大入库持久化;
- 逻辑:仅名单内IP允许访问,泄露接口地址、参数也无法调用;
- 特殊优化:内部服务通过内网域名/Feign调用,公网无法直达,可免白名单;
- 短板:攻击者若控制白名单内网机器则失效,需配合内网防火墙加固。
3. HTTPS传输加密(防抓包篡改、窃取接口参数)
原始HTTP三大风险:明文窃听、身份伪造、报文篡改;
HTTPS = HTTP + TLS加密 + 身份证书校验 + 报文完整性校验;
作用:防止黑客抓包拿到接口入参、Cookie、签名信息,避免被伪造请求刷接口。
二、网关层统一拦截(全局统一管控,所有请求必经网关)
网关是所有接口的统一入口,把限流、鉴权、黑名单、验证码校验收敛到网关,不用每个业务接口重复开发:
- 统一流量限流:全接口、单接口粒度限流;
- 统一身份鉴权:登录态校验、权限拦截;
- 请求过滤:拦截非法UA、恶意IP、异常请求头;
- 统一监控告警 :聚合全链路调用日志,统计QPS突增;
主流网关:Spring Cloud Gateway、Nginx、Kong、Sentinel Gateway。
三、流量限流(核心手段,解决高频刷接口,分多种粒度)
1. 业务层落地方案(短信接口经典案例)
两层限流组合,杜绝单手机号疯狂刷短信:
1)短时间窗口限流(60s/条)
Redis Key=手机号,过期60s,控制1分钟只能发1条,防止短时间狂轰;
2)每日总量限流(单手机号日上限10条)
Redis Key=手机号+日期,过期24h,限制单日总条数;
两层校验同时生效,避免攻击者定时循环刷接口。
2. 通用限流算法(面试必问)
- 固定窗口、滑动窗口、漏桶、令牌桶(Sentinel默认令牌桶)
3. 限流维度(多维度组合拦截)
- 按IP限流:单IP每秒请求上限;
- 按用户ID/手机号限流:登录用户、短信场景;
- 按接口维度:高危接口(短信、注册、支付)单独收紧阈值;
- 按设备号:APP端防止一台设备批量注册。
四、身份与权限鉴权(区分正常用户与匿名攻击者)
1. 登录态校验
未登录匿名用户直接拦截,仅登录用户可访问业务接口;
从请求上下文获取token解析用户信息,token失效/不存在直接返回401。
2. 功能权限控制
核心操作接口(订单审核、退款、会员开通)增加权限校验:
- 自定义权限注解标注接口所需权限点;
- 网关/拦截器统一拦截,匹配当前用户权限,无权限直接拒绝。
3. 接口签名(对外开放API必备,补充你原文遗漏的加分项)
第三方开放接口不能只靠IP白名单,需要请求签名 :
双方约定AppKey + AppSecret,请求携带时间戳、随机nonce、参数签名;
校验逻辑:
- 校验时间戳,拒绝5分钟前过期请求(防重放攻击);
- 用秘钥重新计算签名,和客户端上传签名比对,不一致直接拦截;
防止参数篡改、接口被盗刷。
五、人机验证(验证码,拦截脚本自动化刷接口)
针对注册、短信、找回密码等匿名高危接口,区分机器脚本和真人:
- 图形验证码:简单易破解,仅做基础防护;
- 滑块/点选行为验证码(极验、阿里云验证码):采集滑动轨迹,机器难以模拟;
- 短信验证码:二次校验,但必须搭配限流,否则高额扣费;
短板:仅能拦截自动化脚本,无法阻止批量真实手机号循环刷,必须配合限流。
六、监控告警+事后处置(兜底发现与止损)
- 日志埋点:网关打印全量请求日志(IP、用户ID、接口、时间、返回码);
- 流量监控:监控单IP/单手机号QPS突增、错误码暴涨;
- 自动告警:超过阈值推送短信/钉钉/邮件预警;
- 人工处置:发现恶意IP/手机号,动态加入黑名单,网关直接永久拦截;
- 长效方案:建立恶意IP库,定期同步到防火墙、网关。
七、完整分层防御总结(面试收尾总结,逻辑闭环)
从外到内多层防护,层层拦截,单一方案存在漏洞,必须组合使用:
- 网络层:防火墙清洗DDoS、IP白名单拦截非法服务调用、HTTPS加密防抓包;
- 网关层:统一入口,实现全局限流、黑名单、请求过滤、监控告警;
- 身份层:登录鉴权、接口权限、开放API签名校验;
- 人机层:滑块/短信验证码拦截自动化脚本;
- 业务限流层:基于手机号/用户ID/IP做多维度时间窗口限流;
- 事后兜底:实时监控异常流量,发现攻击后拉黑恶意账号/IP。