security - 将 OAuth2 client_id 和 client_secret 安全地存储在客户端应用程序中

标签 security oauth oauth-2.0

是否有任何巧妙的解决方案可以将 client_idclient_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/

相关文章:

MySQL 注入(inject)预防

javascript - javascript(或浏览器扩展)如何检测受限功能的使用?

android - 关于 OAuth 和 Android 的一些问题

session - 在微服务架构中使用 Spring Boot 管理 session 的位置

security - 如何保护 Hadoop 中的特定数据

c# - Process.Start() 不会在同一用户下生成新进程

encryption - Owin WebApi 2 - 在单独的平台上解密 OAuth key

php - 如何使用从 tmhOAuth 获得的用户 token / secret ?

.net - Freebase oAuth2 错误请求(400) .Net

javascript - oAuth 2 用于授权和自动登录