是否有任何聪明的解决方案可以在客户端应用中安全地存储client_id
和client_secret
?
这可能是一个反编译的Android / iOS应用。或者是以纯文本形式显示的Chrome扩展程序。
如果攻击者受到攻击并冒充你的应用程序,可以依靠它的声誉来鼓励用户授权访问,对吗?
很好奇这里有什么解决方案。谢谢!
答案 0 :(得分:2)
对于移动应用,建议不要使用“授权代码授权”方案,因为将client_secret存储在移动应用中并不安全。这就是该标准在机密客户和公共客户之间产生差异的原因(参见2.1)。
您应该使用“隐式授权”方案(为javascript和嵌入式应用程序创建)。它不包含client_secret,因为客户端无论如何都无法正确保护它,客户端只使用其client_id。由于移动客户端被认为可能不安全,因此服务器不得发出刷新令牌,只能发出短期访问令牌。