【发布时间】:2023-04-11 08:40:01
【问题描述】:
我有一个类似 SO 的网站。当用户创建帐户时,他们的帐户将被停用,直到打开他们的电子邮件并点击我之前发送的此类 URL。
那么,那个 URL 应该包含什么参数?
目前我散列用户的电子邮件并将其作为参数传递给该 URL。因此,当用户单击它时,我会收到该散列电子邮件并进行比较。但是我的算法并不好,因为用户可以对自己的电子邮件进行哈希处理并将其传递给我的脚本,而无需打开他的电子邮件。好吧,我想知道,如何制作确认帐户网址以及如何验证它?
【问题讨论】:
-
你需要将它与只有应用知道的随机数一起散列。
-
看看盐渍哈希。 This post 是指密码,但您可以对一次性激活链接使用相同的方法。然后,您可以将密钥存储在数据库中直到它被使用,然后删除记录。
-
通常最好还有一个过期日期,这样过一段时间您就可以在数据库中进行清理,删除所有过期(未激活)的帐户。
标签: php algorithm email account