【问题标题】:'redirect url' for an oAuth2.0 clientoAuth2.0 客户端的“重定向 url”
【发布时间】:2015-07-15 16:59:38
【问题描述】:

我对 OAuth 框架非常陌生,目前正致力于在 android 平台上编写客户端。

当尝试向 api 提供程序注册我的应用程序时,它会要求提供重定向 URL。我搜索了一下,发现一些文献说它是一种安全功能,可以避免网络钓鱼攻击和类似的东西。

我对我学到的东西有点困惑。实际上,作为客户端开发人员,我应该如何处理重定向 url?是否有我需要遵循的指导方针?是否取任意值?

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: android rest oauth-2.0 client


    【解决方案1】:

    重定向 URL 的目的是防止恶意网站的开发者欺骗 OAuth 服务器生成一个为您准备的令牌并将其提供给他们。潜在的漏洞是:

    1. 请求https://oauth.server.com/login?app_id=2&redirect_uri=https://malicious.com
    2. 用户登录后,OAuth 服务器生成一个令牌并重定向到https://malicious.com?token=xxx

    如果上述流程有效,恶意服务器会获得一个有效令牌,然后它可以用来与您的应用程序交互。

    相反,当您注册您的应用程序时,他们会立即要求返回 URL。这使他们能够始终重定向到您的应用程序的相同 URL,因此始终将有效令牌传递给已知应用程序。

    这部分 OAuth 流程包含在 the OAuth 2 spec section 3.1.2 Redirection Endpoint 中。规则比较多,这里就不引用了。

    如果您通过 API 而不是通过 OAuth 流程使用此令牌,那么您可能不需要重定向 URL。

    【讨论】:

    • 很好的解释。非常感谢。另一个问题,为什么服务器首先需要重定向我的请求,如果没有提供这种重定向,这个漏洞还会存在吗?
    • 当用户尝试登录时(例如,单击“使用 Facebook 登录”按钮),使用 OAuth 的标准 Web 应用程序将按照上述步骤 1 重定向到 OAuth 服务器。然后,OAuth 服务器将使用令牌重定向回来。使用此流程,存在漏洞。如果您不使用此流程,则不需要重定向 url。
    猜你喜欢
    • 2021-06-24
    • 2016-06-17
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    相关资源
    最近更新 更多