OAuth 与 OIDC 配置安全
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/oauth-oidc-misconfiguration-enn0 技能到当前 AI 助手。
技能介绍
为什么 OAuth/OIDC 配置错误会成为攻击入口?
OAuth 2.0 与 OpenID Connect 是现代应用中常见的第三方登录方案,但许多团队在集成时只关注功能跑通,却忽略了配置中的安全细节。例如,redirect_uri 若仅做前缀匹配或允许开放重定向链,授权码就可能被重定向到恶意地址;state 参数缺失、固定或未与用户会话绑定,会让 CSRF 攻击者直接完成登录绑定;而移动端或 SPA 这类公开客户端如果没有强制使用 PKCE,则授权码一旦泄露,攻击者无需客户端密钥即可换取令牌。这些错误往往不是协议本身的缺陷,而是实现时的遗漏,却会导致账号劫持、令牌滥用和数据泄露。
技能如何帮你定位这些风险
该技能提供一份聚焦的 OAuth/OIDC 配置错误检查清单,覆盖以下高风险主题:
- state 与 nonce 处理:检查是否缺失、固定、可预测或未绑定到用户会话
- redirect_uri 验证:查找前缀匹配、开放重定向链、路径混淆、localhost 残留
- PKCE 强制:确认公开客户端是否启用,以及 code verifier 是否真正生效
- token audience 与 issuer:检查弱校验或跨客户端令牌复用
- 账号绑定:发现回调将攻击者身份绑定到受害者会话的逻辑
- scope 授权:检查是否授予了超出用户或客户端预期的权限
使用时,建议按以下步骤快速分诊:
- 映射完整的授权流程:
authorize、callback、token exchange、logout - 用篡改的
state、nonce和redirect_uri重放回调流程 - 比较 SPA、移动端和 Web 客户端是否存在更弱的校验
- 检查一个提供商账号是否可以被重新绑定到另一个本地账户
适用边界与注意事项
本技能专注于 OAuth 2.0/OIDC 流程的配置错误,适用于登录、回调和令牌交换环节的安全审计。如果需要排查 JWT 头部滥用、令牌加密等更底层的令牌安全问题,应结合 jwt oauth token attacks 技能一起加载。同样,企业级 SSO 的 SAML 断言攻击、CORS 跨域令牌泄露等问题,需要分别使用 saml sso assertion attacks 和 cors cross origin misconfiguration 技能。在实际测试中,请确保拥有合法授权,并优先在测试环境中验证。
使用场景
- 审查第三方登录时,确认 `redirect_uri` 是否只做前缀匹配并存在开放重定向风险
- 测试 SPA 或移动端授权码流程,检查 PKCE 是否缺失或可被降级
- 排查登录回调,发现 `state` 固定或未绑定会话导致的 CSRF 绑定风险
- 审计 ID token 返回流程,验证 `nonce` 是否缺失或未在回调中校验
适合人员
- 后端工程师:修复 `redirect_uri`、PKCE 和 token audience 校验逻辑
- 安全工程师:定位 OAuth 登录流程中的 state、nonce 与账号绑定缺陷
- 前端/SPA 开发者:为公开客户端补齐 PKCE 并规范授权回调处理
- SRE 或 IdP 管理员:审计第三方登录配置,降低令牌滥用和重放风险