我创建了一个 servlet,用于检查 LDAP 中的 userID,如果存在,它会向该 servlet 发送电子邮件 有链接的用户:
"Please follow this <a href=\"" + url + "/ConfirmedResetPasswordPage.jsp?action=" + userID + "\"> link </a>to reset your password" ;
我被告知这不是一个好的做法,我应该在 MySQl 中创建带有 userID、timeResetRequested、GUID 字段的表。 并在电子邮件中传递此 GUID 而不是用户 ID。
并在 2 小时后删除该记录。 是否有更好、更简洁的方法来完成此任务并确保其安全?
最佳答案
是的,这是一个更好的方法。
然而,关于是否发送 GUID 或用户 ID 的问题与重置超时无关紧要。
假设您有一天重设了密码,然后 2 个月后您卖掉了您的帐户。然后,您可以通过在 2 个月前的电子邮件中重置密码来恢复您的帐户。您无需知道新帐户密码即可重置它,而只需登录您的电子邮件并破解您的帐户即可。
现在,尽管说重置计时器比 guid/用户 ID 更重要,但您必须思考,您是否希望您的用户知道他们的用户 ID?如果您不这样做,GUID 是一种很好的屏蔽方式。
关于java - 发送重置密码链接时保护用户 ID 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25250352/