我目前处于设计利用微服务架构的系统的早期阶段。
我正在实现用户登录系统。我有想法让一个服务处理所有不敏感的用户信息(例如用户名,电子邮件,年龄等),然后有另一个处理密码的服务(例如存储密码,加密,验证等)。
拥有这种架构意味着用户数据和密码将存储在两个完全独立的数据库中。
我认为这是一种可行的方法,可以提高安全性。
这种做法是否过度杀伤?显然,我将使用salting和散列密码,但将这些存储完全分开可以提供另一种安全级别。
这种方法有什么缺点吗?
答案 0 :(得分:0)
将凭证存储在单独的数据库中的这种方法确实可以使您的应用程序更安全。这实际上取决于它的实现方式,以及攻击者可以获得的特权。
一个例子是SQL注入,很难让你的整个应用程序得到防弹,但很容易做出唯一的请求来获得证书安全。通常情况下,攻击者无论何时发现泄漏都可以获取凭据,如果凭据存储在单独的数据库中,则不会如此。
如果攻击者拥有服务器的权限,可能没有任何优势,但我也看不出任何缺点。
答案 1 :(得分:0)
如果您的目标是提高安全性,我建议您不要构建自己的用户登录系统。但是,我认为将身份验证/授权与配置文件分开是个好主意。