将用户名和密码存储在单独的数据库中



im当前正在工程的早期阶段,该系统使用微服务架构。

我正在实现用户登录系统的地步。我有一个想法,可以使用一项服务来处理所有不敏感的用户信息(例如用户名,电子邮件,年龄等(,然后还有另一项处理密码的服务(例如存储它们,加密,验证等(。

拥有此体系结构将意味着用户数据和密码将存储在两个完全独立的数据库中。

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

这种方法过于杀伤吗?显然,我将要使用盐和哈希密码,但是将这些密码完全单独存储给了另一个安全性。

这种方法有缺点吗?

将凭据存储在单独的数据库中的这种方法确实可以使您的应用程序更安全。这实际上取决于它的实施方式以及攻击者可以获得的特权。

一个示例是SQL注入,很难使您的整个应用程序子弹证明,但是很容易提出唯一的要求确保凭据安全的请求。通常,攻击者可以在发现泄漏时获得凭据,如果将凭据存储在单独的数据库中。

如果攻击者在服务器上具有特权,则可能没有优势,但是我看不到任何缺点。

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

最新更新