2016-03-07 95 views
1

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

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

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

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

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

回答

1

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

答案很简单:对.apk文件没有数据是安全的。

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

确保信息安全的唯一方法是存储在服务器中,而您的应用程序在需要时获取。

这里是由迈克尔·拉米雷斯检讨有关隐藏技术的文章:https://rammic.github.io/2015/07/28/hiding-secrets-in-android-apps/

在这里,一个关于这个话题的一些谷歌员工讨论:https://groups.google.com/forum/#!topic/google-places-api/SmujrL-pDpU