【问题标题】:Storing usernames and passwords in separate databases将用户名和密码存储在不同的数据库中
【发布时间】:2017-12-02 07:21:14
【问题描述】:

我目前处于设计利用微服务架构的系统的早期阶段。

我正在实施用户登录系统。我的想法是有一个服务来处理所有不敏感的用户信息(例如用户名、电子邮件、年龄等),然后有另一个服务来处理密码(例如存储密码、加密、验证等)。

拥有这种架构意味着用户数据和密码将存储在两个完全独立的数据库中。

我认为这是一种可行的方法,可以提高安全性。

这种方法是否矫枉过正?显然,我将对密码进行加盐和散列处理,但是将这些完全分开存储会提供另一个级别的安全性。

这种方法有什么缺点吗?

【问题讨论】:

    标签: database security passwords microservices


    【解决方案1】:

    这种将凭据存储在单独数据库中的方法确实可以使您的应用程序更加安全。这实际上取决于它是如何实现的,以及攻击者可以获得哪些权限。

    一个例子是 SQL 注入,它可能很难让你的整个应用程序防弹,但很容易做出唯一的请求来确保凭据安全。通常,只要攻击者发现泄漏,他就可以获得凭据,如果凭据存储在单独的数据库中,则不是这样。

    如果攻击者在服务器上拥有特权,可能没有优势,但我也看不到任何劣势。

    【讨论】:

      【解决方案2】:

      如果您的目标是提高安全性,我建议您不要构建自己的用户登录系统。但是,我认为将身份验证/授权与配置文件分开是个好主意。

      【讨论】:

      • 有什么替代方法来构建我自己的?我不想使用 OAuth2 和更大的提供商系统。
      猜你喜欢
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 2013-12-27
      相关资源
      最近更新 更多