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

请描述 OAuth 2.0 的授权码模式(Authorization Code)的完整交互流程,并分析该协议在实施中可能面临的典型安全威胁。

风险判断安全意识技术原理OAuth 2.0

考察说明

考察对 OAuth 2.0 授权码流程的理解以及对其安全风险的认识。

回答思路

  1. 【回答框架 1】OAuth 2.0 授权码模式用于第三方应用代表用户访问受保护资源,核心是授权服务器向第三方应用颁发授权码,第三方应用再用授权码换取访问令牌。流程包括:用户访问第三方应用,第三方应用将用户重定向到授权服务器;用户认证并同意授权后,授权服务器通过重定向回调携带授权码;第三方应用用授权码和客户端密钥向令牌端点换取访问令牌;随后第三方应用使用访问令牌访问资源服务器。
  2. 【回答框架 2】安全风险方面,授权码可能被截获,因此要求使用 TLS 加密通信,并验证重定向 URI 的一致性,防止开放重定向。令牌传输和存储也需安全保护,避免泄露。CSRF 攻击可通过 state 参数抵御,确保请求来源可信。客户端凭证泄露会导致令牌被滥用,因此客户端需安全存储密钥。
  3. 【回答框架 3】此外,授权服务器的令牌端点必须验证客户端身份,并限制令牌权限与有效期,以减少攻击面。资源服务器应验证令牌的有效性与作用域。第三方应用也需安全处理回调请求,防止授权码注入或令牌窃取。
  4. 【关键点 1】授权码流程是 OAuth 2.0 中最安全的方式,因为授权码只在后端交换令牌,减少泄露风险。
  5. 【关键点 2】使用 state 参数防止 CSRF 攻击,重定向 URI 必须严格校验。
  6. 【关键点 3】所有通信必须使用 TLS,令牌必须安全存储并设置合理过期时间。
  7. 【关键点 4】客户端凭证泄露会导致令牌被滥用,必须严格保护。
  8. 【关键点 5】授权服务器应验证客户端身份,资源服务器应验证令牌作用域。
  9. 【易错点 1】认为授权码模式绝对安全,实际上若回调处理不当、重定向 URI 校验不严或缺少 state 参数,仍然可被攻击。
  10. 【易错点 2】忽略了对令牌的保护,如存储在 localStorage 易受 XSS 攻击,应优先使用 HttpOnly cookie 或安全存储。
  11. 【易错点 3】忘记对回调请求的来源进行验证,导致授权码被恶意利用。