是否有任何巧妙的解决方案可以将 client_id
和 client_secret
安全地存储在客户端应用程序中?
这可能是一个被反编译的 Android/iOS 应用程序。或者是纯文本格式的 Chrome 扩展程序。
如果这些受到攻击,攻击者会冒充您的应用程序,利用其声誉来鼓励用户授权访问,对吧?
很好奇这里有什么解决方案。谢谢!
最佳答案
对于移动应用,不建议使用“授权码授予”方案,因为将 client_secret 存储在移动应用中并不安全。这就是该标准区分 secret 客户端和公共(public)客户端的原因(请参阅 2.1 部分)。
您应该改用“隐式授予”方案(为 JavaScript 和嵌入式应用程序创建)。它不包含 client_secret,因为客户端无论如何都无法正确保护它,客户端仅使用其 client_id。由于移动客户端被认为可能不安全,因此服务器不得颁发刷新 token ,而只能颁发短期访问 token 。
关于security - 将 OAuth2 client_id 和 client_secret 安全地存储在客户端应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19555335/