我正在使用移动应用和RESTful API,在注册新用户时我对安全性有所怀疑。我正在开发一个Android客户端,它将通过REST请求与后端进行通信。
我非常清楚OAuth授权服务器的使用和实现,以及如何在android客户端(前端)与资源服务器或授权服务器(后端)之间进行通信。
大多数文档都提到client_id和client_secret必须存储在服务器而不是移动应用程序中,以避免在最终的反编译过程中找到这样的数据。
如果我希望直接在应用程序中执行创建新用户的活动(就像在Snapchat,pinterest等应用程序中的情况一样),我如何使用REST API执行客户端的通信应用程序中没有client_id和client_secret(或任何类型的凭据)?
第一个也是最简单的解决方案是将用户重定向到注册网页,但如何在APP中制作呢?
答案 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