繁体   English   中英

PKCE 实施能否解决动态 redirect_uri Oauth 2.0 的问题(代码授予流程)

[英]Will PKCE implementation resolve problem with dynamic redirect_uri Oauth 2.0 (Code Grant Flow)

我想在 Code Grant 中使用 redirect_uri 作为动态参数,但出于安全原因,我知道 redirect_uri 必须是 static。 如果我实现 PKCE 流程并保留对 client_secret 参数的验证,那么使用动态 redirect_uri 会更安全吗? 在我看来,我将添加一个新的身份验证步骤(使用 PKCE)。

谢谢!

TL;博士

并不真地

解释

PKCE 最初旨在保护身份验证代码流免受 CSRF 和身份验证代码注入攻击。 PKCE RFC-7636在 PKCE RFC 中强烈建议遵循 OAuth 2.0 安全建议。 RFC-6819 第 5.2.3.3 节说明了 static redirect_uri 的原因是为了防止:

  • XSS 攻击
  • 模拟公共客户端应用程序

动态重定向 uri 向向恶意行为者提供 code_challenge 和身份验证令牌的客户端打开了一个潜在漏洞。

例子:

*.example_domain.com

某些网站(例如 Google)使用户能够创建自己的网站作为子域。 恶意行为者可以利用这一点。 它可能并不简单或容易,但它确实暴露了一个漏洞。

子域。*

这更糟。 任何具有匹配子域的站点都是有效的。

在上述任何一种情况下,PKCE 都不会阻止冒充,这可能允许攻击者获取和访问令牌。 它是在令牌端点受信任的环境中防止利用的出色工具。

Openid-Connect

您的问题被标记为 Openid-Connect。 OIDC 要求将 redirect_uri 预先注册到 OpenID 提供者Openid-connect-core 您可以创建一个很长的重定向 uri 白名单以供使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM