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

时间:2016-03-07 13:45:49

标签: android rest mobile frontend backend

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

我非常清楚OAuth授权服务器的使用和实现,以及如何在android客户端(前端)与资源服务器或授权服务器(后端)之间进行通信。

大多数文档都提到client_id和client_secret必须存储在服务器而不是移动应用程序中,以避免在最终的反编译过程中找到这样的数据。

如果我希望直接在应用程序中执行创建新用户的活动(就像在Snapchat,pinterest等应用程序中的情况一样),我如何使用REST API执行客户端的通信应用程序中没有client_id和client_secret(或任何类型的凭据)?

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

1 个答案:

答案 0 :(得分:1)

https://stackoverflow.com/a/14572051/5055317

简单回答:.apk上没有数据是安全的。

有很多方法可以在apk中隐藏您的API密钥。例如,使用类似ProGuard / DexGuard的混淆器,使用Base64编码或使用JNI隐藏这些字符串。但最后他们只是为获得钥匙而制造了一些延迟。

保持此信息安全的唯一方法是,如果它存储在服务器中,并且您的应用在需要时获取它。

以下是Michael Ramirez关于隐藏技术的评论:https://rammic.github.io/2015/07/28/hiding-secrets-in-android-apps/

此处与一些Google员工讨论此主题:https://groups.google.com/forum/#!topic/google-places-api/SmujrL-pDpU