我们希望使用OAuth2创建原生移动应用。 如何防止窃取clientID(这些信息可以由任何人获取)?有人可以使用我们的clientID创建自己的应用程序并充当我们的应用程序吗?
答案 0 :(得分:1)
是的,如果有人检索到您的clientId / clientSecret,他可以充当您的应用程序,遗憾的是,无法从您的应用程序中完全删除凭据。
在更高级别,您的应用需要一个标识符和一个秘密来验证您的服务。如果你从你的应用程序中删除了秘密,你需要从其他地方获取它(可能是你的用户输入它,这与为用户拥有auth并给他一个令牌来执行进一步的API调用相同)。
但是,如this article中所述,您可以让反向者更难获取凭据。 为了使其更难,您可以强制所有API调用在HTTPS中完成并启用SSL证书固定,从而使代理调试/中间人难以实现。
最终,您应该清楚地确定哪些API调用应该是公共的(只有OAuth令牌才能访问这些资源),哪些应该需要用户身份验证。
PS:谷歌(Android安全最佳实践)[https://developer.android.com/training/best-security.html]可能是一个好的开始!