通过android客户端在REST后端创建新用户

通过android客户端在REST后端创建新用户,android,rest,mobile,frontend,backend,Android,Rest,Mobile,Frontend,Backend,我正在使用移动应用程序和RESTful API,在注册新用户时,我对安全性有一些疑问。我正在开发一个android客户端,它将通过REST请求与后端进行通信 我非常清楚OAuth授权服务器的使用和实现,以及android客户端(前端)和资源服务器或授权服务器(后端)之间的通信方式 大多数文档都提到客户端id和客户端机密必须存储在服务器中,而不是移动应用程序中,以避免在最终的反编译过程中发现此类数据 如果我希望直接在应用程序中执行创建新用户的活动(如snapchat、pinterest等应用程序中

我正在使用移动应用程序和RESTful API,在注册新用户时,我对安全性有一些疑问。我正在开发一个android客户端,它将通过REST请求与后端进行通信

我非常清楚OAuth授权服务器的使用和实现,以及android客户端(前端)和资源服务器或授权服务器(后端)之间的通信方式

大多数文档都提到客户端id和客户端机密必须存储在服务器中,而不是移动应用程序中,以避免在最终的反编译过程中发现此类数据

如果我希望直接在应用程序中执行创建新用户的活动(如snapchat、pinterest等应用程序中的情况),在应用程序中没有客户端id和客户端机密(或任何类型的凭据)的情况下,如何执行客户端与REST API的通信

第一个也是最简单的解决方案是将用户重定向到注册网页,但如何在应用程序中实现呢?

简单回答:没有关于.apk的数据是安全的

有很多方法可以将API密钥隐藏在apk中。例如,使用ProGuard/DexGuard之类的模糊器,使用Base64编码或用JNI隐藏这些字符串。但最终他们只是制造了一些延迟来获取密钥

确保此信息安全的唯一方法是将其存储在服务器中,并且您的应用程序在需要时获取它

以下是Michael Ramirez review关于隐藏技术的一篇文章:

下面是与一些谷歌员工讨论的话题: