我正在为我们制作的后端构建一个 iOS 和 Android 应用程序,在应用程序中我们希望用户向我们验证他们的 gmail。关于iOS quickstart page我看到开发人员需要包括:
private let kClientID = "YOUR_CLIENT_ID_HERE"
private let kClientSecret = "YOUR_CLIENT_SECRET_HERE"
但据我所知,我认为可以反编译应用程序二进制文件(适用于 iOS 和 Android),这样基本上任何人都可以找到我们的 client_id
和 client_secret
.
看到 google 是这样解释的,我想这是有道理的,但是在我分发的二进制文件中加入 secret 身份验证代码感觉不对。
任何人都可以对此有更多的了解吗?欢迎所有提示!
最佳答案
您需要定义要保护的对象。如果 protected 值(value)大于攻击的成本。
没有将值放入源代码的安全方法,但对于您的应用程序来说可能足够安全。将它们放在加密文件中只是稍微好一点,因为该文件的 key 必须在应用程序中。
剩下的就是从服务器获取它们,也许是在注册时,安全问题是用户身份验证。然后将客户端和安全 ID 放入钥匙串(keychain)中。
虽然在使用 key 时钥匙串(keychain)在设备上尽可能安全,但必须将其获取到内存中,然后编码到请求中。攻击者的难度要高得多,但并非不可逾越。
关于android - 安全性:应用程序源代码中的谷歌客户端 secret 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31858960/