0

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

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

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

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

4

1 回答 1

0

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

话虽这么说,但您对一件事是正确的 - 让管理员或任何其他用户查看其他人的明文密码是可怕的,我的意思是可怕的安全漏洞。所以这绝对是不可能的。

就您而言,似乎赋予管理员更改某人密码的权利是可行的方法。如果您担心它的外观,请不要担心。Google Apps 允许域管理员更改该域下任何电子邮件帐户的密码。

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

这样,如果管理员在没有用户请求的情况下更改密码,您可以为用户提供追索权,并且日志将让您了解管理员有多少次被用户撤销密码重置。

于 2012-11-20T21:44:26.297 回答