【问题标题】:Is it safe to store 'client_secret' on mobile device when using OAuth?使用 OAuth 时在移动设备上存储“client_secret”是否安全?
【发布时间】:2016-07-16 22:51:48
【问题描述】:

我正在构建 Laravel 后端来验证来自移动设备的用户。并使用https://github.com/lucadegasperi/oauth2-server-laravel

手机用户调用/oauth/callback获取Access Token

我打算使用“密码”作为授权类型。因此,在这种情况下,用户将发送以下内容: - 用户名密码 - 客户 ID + SECRET

我觉得在移动设备上存储秘密有问题。这是好习惯吗? 在对应用进行逆向工程时,可以轻松检测到秘密。

谁能解释使用 OAuth2 时的最佳实践

【问题讨论】:

    标签: laravel oauth


    【解决方案1】:

    OAuth 2.0 假定本机应用程序无法对客户端凭据保密。以下是 RFC 6749 的摘录,“9. Native Applications”。

    使用授权代码授权类型的本地应用程序应该这样做而不使用客户端凭据,因为本地应用程序无法对客户端凭据保密

    在难以对客户端凭据保密的环境中的客户端应用程序称为公共客户端(RFC 6749,“2.1. Client Types”)。公共客户端不应使用客户端机密进行授权和/或令牌请求。 (但这是允许的。)

    如果您的移动设备是智能手机,则不应在应用程序中嵌入客户端密码。另一方面,如果您的移动设备是特殊设备,并且您认为黑客几乎不可能从移动设备中的应用程序中提取客户端密码,则使用客户端密码将增强安全性。

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 2022-01-11
      • 2017-07-23
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多