0

我有一个系统,用户可以通过 Facebook 或常规表格注册。如果用户通过 Facebook 注册,我的系统会生成一个随机密码,以允许用户在没有 Facebook 的情况下登录。如果用户使用常规形式注册,他可以输入任何他想要的密码。在这两种方式中,密码都被编码为 MD5 哈希,但没有加盐。这是不安全的,我知道,这就是我在这里的原因。

我不知道将密码转换为安全密码的最佳策略...首先我想保留 MD5 不安全密码,当用户登录时,我可以匹配没有盐的密码,salt-it 和然后更新数据库。但这并没有解决我的问题,因为系统仍然会接受不安全的密码。除此之外,用户仍然可以使用 facebook 登录,女巫不允许我更新他们的密码(因为他没有使用它)。

那么,有没有人想将影响降到最低,而不是仅仅强迫每个人更新密码?

谢谢!

4

1 回答 1

0

所以,我做了以下操作来解决我的问题。

  1. 在用户表中创建了“LastPasswordChange”列。
  2. 当用户更改密码时,该字段会更新为当前日期,此外,还会向用户发送一封电子邮件以通知密码已更改,并带有一个链接以在错误的情况下恢复它(由于可能的黑客攻击)。
  3. 电子邮件允许用户在不知道上次使用的情况下登录并设置新密码。
  4. 当用户使用当前密码登录时,它会查看 LastPasswordChange 字段,如果它为 null,则允许不使用 salt 登录。
  5. 他/她以任何方式登录(Facebook 或登录/密码),系统查看 LastPasswordChange 字段,如果它为空,系统要求用户将当前密码更改为不同的密码(与旧密码不匹配) .

而已。

于 2013-05-02T19:27:28.377 回答