我设置了一个简单的Web应用程序,管理员可以在其中创建用户。用户不创建自己。管理员所要做的就是输入用户名和电子邮件,并向用户发送临时密码以供他们登录。此电子邮件以纯文本格式发送。如果用户是第一次登录,则需要更改密码并输入安全问题和答案。用户显然必须知道他们的临时密码才能第一次登录,这是我知道让他们知道的唯一方式(通过电子邮件)。另一种选择是让管理员呼叫用户并通过电话或亲自告诉他们他们的临时密码,但这是不切实际的。我怎么能处理这样的情况?
答案 0 :(得分:4)
我通常根据后端的邀请记录使用临时网址。基本上,您创建一个邀请记录并根据某些信息(可能是用户的电子邮件地址,时间戳和随机值)生成哈希。将哈希存储为邀请记录的一部分,然后向其发送一个以哈希作为参数的URL。
当他们点击链接查找邀请并验证它是否存在且尚未使用时 - 然后允许他们设置密码并使邀请无效。
它不需要发送任何类型的密码,如果您愿意,也可以在邀请记录上设置到期日期。
答案 1 :(得分:2)
您描述的场景非常常见 - 通过电子邮件发送临时密码,并要求在首次登录时更改密码。除非您对此型号有特定问题,否则我认为没有理由不使用它。管理员呼叫用户可能会变得复杂 - 我会不惜一切代价避免这种情况。
答案 2 :(得分:0)
您可以使用密码和用户哈希作为参数生成自定义URL,用户必须自行记录。如果攻击者没有信息
,则很难检索哈希