---

title: JWT与刷新令牌安全策略

keywords:

  • JWT
  • Refresh Token
  • RS256
  • Token Rotation
  • 授权与会话
  • httpOnly Cookie
  • SameSite
  • 受众与发行者
  • 过期与撤销
  • 黑名单

description: 设计短期访问令牌与可撤销刷新令牌的安全策略,包含签名算法、存储方式、旋转与撤销机制及验证清单。

date: 2025-11-25

categories:

  • 文章资讯
  • 技术教程

---

概述

JWT 适合携带声明用于认证与授权,但必须配合刷新令牌与撤销机制保证安全与可控。本文提供参数建议、旋转与存储策略,并给出验证清单。

签名与声明(已验证)

  • 算法:优先 RS256/ES256,私钥仅服务端持有;拒绝 none 算法。
  • 必备声明:iss(发行者)、aud(受众)、exp(过期)、iat(签发时间),以及主体 sub 与权限范围 scope
  • 最小化负载:仅包含必要声明,避免敏感信息写入令牌。

访问令牌与刷新令牌

  • 访问令牌(Access Token):短期有效(如 5–15 分钟),低泄露风险窗口。
  • 刷新令牌(Refresh Token):长期有效(如 7–30 天),仅用于换取新访问令牌,不直接授权资源。
  • 旋转(Rotation):每次刷新生成新刷新令牌并撤销旧令牌;绑定设备/客户端标识。

存储与传输

  • Cookie:httpOnly + Secure + SameSite=Lax/Strict,防止 XSS 窃取与 CSRF。
  • 前端不使用 localStorage 存储敏感令牌;采用授权码流程(PKCE)。
  • 令牌不出现在 URL 与日志;通过 Authorization 头传输访问令牌。

撤销与黑名单

  • 维护刷新令牌黑名单(或状态存储)并记录最近一次使用时间与指纹;一旦异常使用立即作废。
  • 设备注销与风险事件(密码修改、权限变更)触发全部令牌失效。

验证清单

  • 校验签名与算法固定;
  • 校验 iss/aud/exp/nbf
  • 校验会话状态与黑名单;
  • 限定来源与设备指纹(可选);

示例(伪配置)

accessTokenTTL=10m, refreshTokenTTL=14d
algo=RS256, keyRotation=90d
cookie: httpOnly+Secure+SameSite=Lax
refresh: rotate=true, revokeOnSuspicious=true

常见误区

  • 访问令牌长期有效导致泄露风险扩大。
  • 刷新令牌不旋转或无撤销通道,无法阻断风险。
  • 将令牌存入 localStorage 被 XSS 轻易窃取。

结语

以短期访问令牌、可旋转刷新令牌与严格校验为核心,辅以 Cookie 安全与黑名单机制,可显著提升会话安全与可管控性。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部