【问题标题】:Its reaonable don't store passwords for users in web local database?它是否可以不在网络本地数据库中存储用户的密码?
【发布时间】:2016-10-30 10:08:34
【问题描述】:

Web 开发人员的问题,这种设计方法用于身份验证是否合理?

我创建了一个网站,但我没有在我的数据库中存储任何用户配置文件的密码。我只允许通过身份验证令牌登录 google 或 facebook 以在我的网络中分配用户权限和登录检查。

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

有什么建议吗?

【问题讨论】:

  • 如果这种方法适用于您的网站,完全由您决定。请注意,您现在使用的网站认为这种方法可以接受

标签: security authentication login passwords


【解决方案1】:

是的,将密码存储在您控制的数据库中是可以的。如果您决定采用这种方式,请注意它们不是以纯文本形式存储的。此外,使用 3rd 方身份验证可以让您的原型设计更快。

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

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2015-10-26
    • 2018-06-15
    • 2011-08-28
    相关资源
    最近更新 更多