【问题标题】:Native app OAuth2 authorization原生应用 OAuth2 授权
【发布时间】:2018-05-14 13:33:58
【问题描述】:

我们想使用 OAuth2 创建一个原生移动应用。 如何防止窃取clientID(任何人都可以获取此信息)?有人可以使用我们的clientID创建自己的应用程序并充当我们的应用程序吗?

【问题讨论】:

    标签: security mobile oauth-2.0 authorization native


    【解决方案1】:

    是的,如果有人检索了您的 clientId/clientSecret,他可以充当您的应用程序,但遗憾的是,无法从您的应用程序中完全删除凭据。

    在更高级别上,您的应用需要一个标识符和一个秘密来对您的服务进行身份验证。如果您从您的应用程序中删除秘密,您需要从其他地方获取它(可能是您的用户键入它,这与为用户提供身份验证并给他一个令牌以执行进一步的 API 调用相同)。

    但是,如this article 中所述,您可以让逆向者更难获取凭据。 更难的是,您可以强制所有 API 调用在 HTTPS 中完成并启用 SSL 证书固定,从而使代理调试/中间人难以完成。

    最终,您应该清楚地确定哪些 API 调用应该是公开的(仅使用 OAuth 令牌来访问这些资源)以及哪些应该需要用户身份验证。

    PS:Google 的(Android 安全最佳实践)[https://developer.android.com/training/best-security.html] 可能是一个好的开始!

    【讨论】:

    • 谢谢你的回答:)
    猜你喜欢
    • 2020-11-27
    • 2023-04-05
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多