它是否可以在网站本地数据库中存储用户的密码?

时间:2016-10-30 10:08:34

标签: security authentication login passwords

Web开发人员的问题,这种认证设计方法是否合理?

我创建了一个网络,我不会在我的数据库中存储用户个人资料的任何密码。我只是通过身份验证令牌允许google或facebook登录,以便在我的网络中分配用户权限和登录检查。

通过这种方法,我的网络不会被密码窃取,因为我没有任何人。显然我必须信任谷歌或Facebook登录系统,但我确信他们保护他们的系统比我自己的。

有任何建议或意见吗?

1 个答案:

答案 0 :(得分:0)

是的,将密码存储在您控制的数据库中即可。如果您决定采用这种方式,请注意它们不会以纯文本格式存储。同样使用第三方认证可以让你的原型设计更快地移动。

在本地存储密码有一些你应该注意的有趣时刻

通常数据库只存储密码的哈希,所以即使有人偷了哈希,他们仍然不知道实际的密码。 Password verification计算密码的哈希值,并将其与存储在数据库中的值进行比较。

另一件事是hashes are salted。它们稍作修改,因此攻击者无法将预先计算的表用于现有的哈希函数。

在本地存储密码需要您实现相关的用户流程

您必须实施密码更改代码,“忘记密码”等,而不是专注于您的应用程序代码。

主要网站通常允许多种选择(例如我可以通过facebook / google或我的电子邮件+密码注册)。

在某些领域,人们不使用Facebook身份验证(例如,我知道甚至没有Facebook帐户的大多数安全相关极客。)