安全岗位面试题更新 2026-08-05

请解释 JWT 的定义,并说明在项目中使用 JWT 时需要注意哪些安全问题?

风险判断技术原理JWT

考察说明

考查对 JWT 概念的理解以及在实际应用中识别和规避安全风险的能力。

回答思路

  1. 【回答框架 1】JWT 即 JSON Web Token,是一种基于 JSON 的开放标准(RFC 7519),用于在各方之间安全地传输声明信息。它由三部分组成:Header(头部)、Payload(载荷)和 Signature(签名),通常以 Base64Url 编码并用点号分隔。Header 包含令牌类型和签名算法,Payload 包含实际声明数据,Signature 用于验证令牌的完整性和来源。
  2. 【回答框架 2】使用 JWT 的安全注意事项包括:1. 签名算法安全:必须使用强算法(如 RS256、ES256),避免使用 HS256 等对称算法时密钥泄露,且严禁接受算法为 none 的令牌。2. 密钥管理:对称密钥或非对称私钥必须妥善保管,定期轮换,防止泄露。3. 传输安全:JWT 应通过 HTTPS 传输,防止中间人窃取。4. 存储安全:客户端存储 JWT 时,应避免存储在 localStorage 等易受 XSS 攻击的位置,优先使用 HttpOnly Cookie。5. 过期时间:设置合理的过期时间(exp),并考虑使用刷新令牌机制。6. 敏感信息:不要在 Payload 中存放敏感数据,因为 J
  3. 【回答框架 3】此外,还需注意防止重放攻击,可通过 jti(唯一标识)和一次性使用机制缓解;验证签名时必须严格校验算法和密钥,防止算法混淆攻击;对于跨域场景,需配置正确的 CORS 策略,避免令牌被恶意站点利用。
  4. 【回答框架 4】在实际项目中,应结合具体业务场景,权衡无状态性和安全性,必要时引入黑名单或撤销机制,因为 JWT 本身无法主动失效。
  5. 【关键点 1】JWT 由 Header、Payload、Signature 三部分组成,用于安全传输声明。
  6. 【关键点 2】必须使用强签名算法(如 RS256),禁止接受算法为 none 的令牌。
  7. 【关键点 3】敏感信息不应放入 Payload,因为 JWT 默认不加密。
  8. 【关键点 4】JWT 应通过 HTTPS 传输,并存储在 HttpOnly Cookie 中以防 XSS。
  9. 【关键点 5】设置合理过期时间,并考虑使用刷新令牌和黑名单机制应对撤销需求。
  10. 【易错点 1】误以为 JWT 是加密的,实际默认只签名,Payload 可被解码。
  11. 【易错点 2】忽略算法混淆攻击,未严格校验签名算法和密钥。
  12. 【易错点 3】将 JWT 存储在 localStorage 中,增加 XSS 泄露风险。