我的Web应用程序中有一个名为“Administrator”的角色。具有此角色的用户应该能够修改有关注册用户的信息。
我正在考虑显示一个包含用户详细信息的表格,例如电子邮件,用户名,并且能够更改它们但我不知道如果用户实际来到办公室该怎么办?管理员并要求更改密码(是的,他们可以这样做)。管理员是否应该按下行上的重置按钮并告诉用户在他到家时检查他的电子邮件并继续进行恢复? (例如重置链接)或者管理员应该重置用户的密码并在那个时刻给他新的密码?第二种方法更可取,因为我被要求这样做......
我知道管理员不应该看到原始密码,因为它应该被散列和未知。
您对此有何看法?你会如何实现这个功能?谢谢你的帮助。
答案 0 :(得分:0)
这个问题没有一个完美的答案。工作流的问题将始终取决于应用程序的特定用例,并取决于它所构建的上下文。
话虽如此,你说的是对的一件事 - 它太可怕了,而且我的意思是让管理员或任何其他用户为其他人查看明文密码是一种可怕的安全漏洞。所以这绝对不在谈判桌上。
在您的情况下,似乎让管理员有权更改某人的密码是可行的方法。如果你担心它看起来如何,不要。 Google Apps允许域管理员更改该域下任何电子邮件帐户的密码。
最后,我建议采取一些额外的安全措施。当管理员更改其他用户的密码时,将旧的加密密码存储在一列中,不要删除它。当管理员设置新密码时,向用户发送一封电子邮件,说“管理员更改了您的密码,如果您没有请求,请点击此处”。当他们点击电子邮件中的链接时,只需用旧密码覆盖新密码。
这样,如果管理员在没有用户请求的情况下更改密码,您可以使用该用户,日志将通知您管理员已重置密码重置用户的时间。