【问题标题】:Security pattern of Oauth Token and SecretOauth Token和Secret的安全模式
【发布时间】:2011-11-13 15:55:50
【问题描述】:

我正在开发一个 Web 应用程序。它使用 oauth 从不同的服务进行身份验证。 将这些令牌和机密直接保存到数据库中是否存在任何风险。还是我应该加密它们?

保存oauth令牌和秘密的一般安全模式是什么

【问题讨论】:

    标签: security design-patterns


    【解决方案1】:

    这个帖子回答了你所有的问题:

    Securly Storing OpenID identifiers and OAuth tokens

    基本上,以下内容以一种或其他方式相互依赖:

    • 消费者密钥
    • 消费者秘密
    • 访问令牌
    • 访问令牌密码

    除非消费者密钥/秘密也存在风险,否则您不需要加密访问令牌/秘密。访问令牌只能与生成它们的消费者密钥/秘密结合使用。

    【讨论】:

      【解决方案2】:

      我假设您在谈论典型的“服务提供商”、“消费者”和“用户”设置? 如果是这样,会话和 cookie 足以保存令牌,但问题是您的消费者(据我了解,您的客户)需要保存它们,而不是您。在您的 API 调用范围内是否有可用的会话/cookie?

      在任何一种情况下,如果令牌存储在会话或 cookie 中,它们将是“临时”密钥,并且用户必须在它们过期时重新进行身份验证。但就 oAuth 规范而言,这并没有什么问题——只要用户不介意重新进行身份验证。

      另外请记住,令牌与给定的服务和用户相关联,而不是与任何 IP 地址或设备 UUID 相关联。它们不能与不同的 API 和密钥一起使用,因为它们与为其颁发的应用程序相关联。

      这样,用户可以逐个应用取消授权,并且每个应用都可以拥有不同的权限集(例如只读访问权限)。所以你的答案是你不需要加密它们,无论如何你都需要它们(如果你是用户)。

      【讨论】:

      • 对不起,我不是服务提供商。我正在开发使用像 facebook 这样的服务的应用程序,我想在用户对其进行身份验证时将令牌保存在数据库中。
      • 很奇怪。这个答案是从stackoverflow.com/questions/3284260/… 复制的一半,对于提出的问题几乎没有意义。
      猜你喜欢
      • 2015-12-29
      • 2014-12-03
      • 2013-12-27
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      • 2019-05-01
      • 2013-06-14
      相关资源
      最近更新 更多