</> DevCN
菜单
推荐AI 与大模型后端与架构前端与跨端移动开发云原生与 DevOps数据库与数据工程网络与安全开源与开发工具产品与独立开发人工智能深度职场与成长

API 鉴权设计常见漏洞:令牌、签名、重放与越权的系统治理

深入分析 API 中身份认证、对象级授权、请求签名和令牌生命周期,避免只验证登录却忽略业务权限。


认证成功不代表允许操作

许多接口只检查令牌是否有效,却没有验证当前用户能否读取请求中的订单、文件或租户资源。攻击者只需替换对象编号就可能访问他人数据。每个业务查询和写入都应绑定调用者身份、租户与资源关系,不能依赖前端隐藏按钮,也不能先查出数据再在响应层过滤。

令牌必须短期且用途明确

访问令牌设置较短有效期,刷新令牌采用轮换并记录设备与会话。令牌载荷不要放入密码、隐私数据和经常变化的权限。服务端必须校验签名算法、签发方、受众和时间,不接受客户端指定算法。账号被禁用或高风险事件发生时,需要具备立即撤销会话的能力。

签名防篡改不自动防重放

请求签名应覆盖方法、路径、关键头、正文摘要、时间戳和随机数。服务端限制时间窗口并记录已使用随机数,重复请求直接拒绝。金额、收款方等高风险字段必须进入签名范围。签名密钥按调用方独立分配和轮换,泄露一个合作方不能影响所有接入者。

错误与限流也属于安全边界

登录、验证码、找回密码和令牌刷新按账号、设备与网络多维限流,避免攻击者绕过单一 IP 限制。错误信息不要暴露账号是否存在、内部表名和堆栈。对批量查询、导出和管理接口设置更严格的权限、配额和审计。

以攻击路径进行测试

自动化测试应覆盖横向越权、纵向越权、过期令牌、重复请求、参数污染和租户切换。网关负责通用认证与速率限制,业务服务仍需执行资源授权。可靠 API 安全要求每次请求都同时证明调用者身份、请求完整性和对目标资源的合法权限。

DISCUSSION

文章回复

0 条公开回复
未登录回复需要审核后公开
还没有回复,欢迎参与讨论。