Database 用户详细信息管理

Database 用户详细信息管理,database,security,passwords,password-recovery,Database,Security,Passwords,Password Recovery,我的web应用程序中有一个名为“管理员”的角色。具有此角色的用户应该能够修改有关已注册用户的信息 我正在考虑显示一个包含用户详细信息(如电子邮件、用户名)的表,并能够对其进行更改,但我不知道如果用户亲自来到办公室,向管理员请求更改密码,我该怎么办(是的,他们可以这样做)。管理员是否应该在该行上按一个重置按钮,并告诉用户回家后检查他的电子邮件,然后继续恢复?(例如重置链接)或者管理员是否应该重置用户的密码,并在那一刻给他新的密码?第二种方法更可取,因为我被要求这样做 我知道管理员不应该能够看到原始

我的web应用程序中有一个名为“管理员”的角色。具有此角色的用户应该能够修改有关已注册用户的信息

我正在考虑显示一个包含用户详细信息(如电子邮件、用户名)的表,并能够对其进行更改,但我不知道如果用户亲自来到办公室,向管理员请求更改密码,我该怎么办(是的,他们可以这样做)。管理员是否应该在该行上按一个重置按钮,并告诉用户回家后检查他的电子邮件,然后继续恢复?(例如重置链接)或者管理员是否应该重置用户的密码,并在那一刻给他新的密码?第二种方法更可取,因为我被要求这样做

我知道管理员不应该能够看到原始密码,因为它应该是散列和未知的


你对此有什么想法?您将如何实现此功能?谢谢你的帮助。

这个问题没有一个完美的答案。工作流问题始终取决于应用程序的特定用例,并取决于其内置的上下文

话虽如此,有一件事你是对的——让管理员或任何其他用户查看其他人的明文密码是可怕的,我的意思是可怕的安全漏洞。所以这绝对是不可能的

在您的情况下,似乎给予管理员更改某人密码的权利是一种方法。如果你担心它的外观,不要担心。Google Apps允许域管理员更改该域下任何电子邮件帐户的密码

最后,我建议采取一个小的额外安全措施。当管理员更改其他用户的密码时,将旧的加密密码存储在列中,不要删除它。当管理员设置新密码时,向用户发送一封电子邮件,说“管理员更改了您的密码,如果您没有请求,请单击此处”。当他们点击电子邮件中的链接时,只需用旧密码覆盖新密码即可

这样,如果管理员在未经用户请求的情况下更改密码,您可以向用户求助,并且日志将通知您管理员已被用户撤销密码重置的次数。

可能更适合您。