API 安全:鉴权、限流与敏感字段的五道防线 | 技术知识 | 都图科技 DOUTOO
都图科技doutoo.com
首页/技术知识/网络安全

API 安全:鉴权、限流与敏感字段的五道防线

网络安全 2026.10.20|约 9 分钟|运维事业部 出品

前后端分离之后,接口就是数据库的大门。门锁没配好,前端做得再漂亮也没用。

一、先盘点暴露面

很多团队说不清自己有多少接口。先让网关或框架导出路由清单,逐条标注:

  • 是否需要登录、需要什么角色
  • 是否对外网开放(公网、小程序、合作方)
  • 是否含敏感操作(导出、批量查询、改价、退款)
  • 是否有管理后台专用接口被误暴露在公网

盘点后通常会发现几类问题:测试接口未下线、内部接口无鉴权、老版本接口仍在运行。这三类是入侵最常用的入口。

二、鉴权与越权的区别

鉴权是"你是谁",越权是"你能碰什么"。两者都要做,缺一不可。

类型表现防法
未授权访问接口不校验 token 也能调统一拦截器,白名单显式声明
水平越权改 orderId 就能看别人的订单每次查询都带当前用户条件,不能只按 ID 查
垂直越权普通用户调到管理员接口服务端校验角色,不依赖前端隐藏按钮
批量导出一次拉走全量数据限制条数、加审批、导出留痕

前端隐藏菜单不算权限控制。所有判断都必须在服务端做一次。

三、限流与防刷

  • 按账号:普通接口 10–60 次/分钟,导出类单独设更低阈值
  • 按 IP:防爬与撞库,注意 NAT 后多人共用出口,阈值不能太死
  • 按接口:登录、短信、支付回调这类高风险接口单独限流
  • 熔断降级:下游异常时快速失败,避免雪崩

限流要返回明确的 429 与重试提示,而不是直接超时。否则调用方会加倍重试,反而放大压力。

四、敏感字段的最小化

  1. 返回字段按需给:列表接口不返回身份证、银行卡、详细地址
  2. 必须展示时做掩码,完整值走单独接口并二次验证
  3. 日志与错误信息脱敏,禁止打印完整 token、密码、证件号
  4. 传输强制 HTTPS,内部服务间也建议加密
  5. 存储加密:证件号、银行卡等字段加密落库,密钥与数据分离
错误信息是常被忽略的泄露源

把数据库报错原样返回给前端,等于告诉攻击者表结构和字段名。统一错误码,详细原因只写服务端日志。

五、监控、密钥与应急

  • 监控异常调用:单账号高频、非工作时间批量拉取、大量 401/403
  • 密钥不写进代码与前端,用配置中心或密钥管理服务,定期轮换
  • 合作方接口用独立 appId 与密钥,权限最小化,可单独吊销
  • 准备应急开关:可一键关闭某个接口或某个合作方,不必发版
  • 每季度做一次接口安全自查,重点是新增接口是否纳入统一鉴权

最后一条最实际:新接口是风险主要来源。把"新增接口必须登记并过鉴权"写进发布检查单,比事后扫描有效得多。

← 上一篇机房容量管理:空间、电力与制冷的三本账