'redirect url' 对于 oAuth2.0 客户端
'redirect url' for an oAuth2.0 client
我对 OAuth 框架非常陌生,目前正在 android 平台上编写客户端。
当尝试向 api 提供商注册我的应用程序时,它要求重定向 url。我搜索了一下,发现一些文献说它是一种安全功能,可以避免网络钓鱼攻击和类似的东西。
我对我学到的东西有点困惑。实际上,作为客户端开发人员,我应该如何处理重定向url?是否有我需要遵循的指南?它取任意值吗?
任何帮助将不胜感激。
谢谢。
重定向 URL 的目的是防止恶意网站的开发者欺骗 OAuth 服务器生成为您准备的令牌并将其提供给他们。潜在的漏洞是:
- 请求
https://oauth.server.com/login?app_id=2&redirect_uri=https://malicious.com
- 用户登录后,OAuth 服务器生成令牌并重定向到
https://malicious.com?token=xxx
如果上述流程有效,恶意服务器将获得一个有效令牌,然后可用于与您的应用程序交互。
相反,当您注册您的应用程序时,他们会立即要求 return URL。这使他们能够始终重定向到您的应用程序的相同 URL,因此始终将有效令牌传递给已知应用程序。
OAuth 流程的这一部分包含在 the OAuth 2 spec section 3.1.2 Redirection Endpoint 中。规则比较多,这里就不引用了。
如果您通过 API 而不是通过 OAuth 流程使用此令牌,那么您可能不需要重定向 URL.
我对 OAuth 框架非常陌生,目前正在 android 平台上编写客户端。
当尝试向 api 提供商注册我的应用程序时,它要求重定向 url。我搜索了一下,发现一些文献说它是一种安全功能,可以避免网络钓鱼攻击和类似的东西。
我对我学到的东西有点困惑。实际上,作为客户端开发人员,我应该如何处理重定向url?是否有我需要遵循的指南?它取任意值吗?
任何帮助将不胜感激。
谢谢。
重定向 URL 的目的是防止恶意网站的开发者欺骗 OAuth 服务器生成为您准备的令牌并将其提供给他们。潜在的漏洞是:
- 请求
https://oauth.server.com/login?app_id=2&redirect_uri=https://malicious.com
- 用户登录后,OAuth 服务器生成令牌并重定向到
https://malicious.com?token=xxx
如果上述流程有效,恶意服务器将获得一个有效令牌,然后可用于与您的应用程序交互。
相反,当您注册您的应用程序时,他们会立即要求 return URL。这使他们能够始终重定向到您的应用程序的相同 URL,因此始终将有效令牌传递给已知应用程序。
OAuth 流程的这一部分包含在 the OAuth 2 spec section 3.1.2 Redirection Endpoint 中。规则比较多,这里就不引用了。
如果您通过 API 而不是通过 OAuth 流程使用此令牌,那么您可能不需要重定向 URL.