生成唯一的URL以访问我网站上的安全页面

时间:2011-03-14 14:15:58

标签: php

我有一个'忘记密码'链接,当打开时,用户输入他们的帐户密码。但是,我想创建一个将在电子邮件中发送的唯一网址。点击后会将用户带到网站上的change_password.php页面。

我可以使用MD5和unique()生成一个唯一的ID,但是从这里我不太确定如何将它添加到href来访问change_password.php页面

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

唯一的解决方案是将md5附加到电子邮件中链接的查询字符串中。这不是很安全,但实际上并没有更安全的选择,只能通过安全的陆线口头提供密码。

用户点击链接后,您可以从GET获取md5并将其与临时密码进行比较,以便他们访问“重置密码”页面,他们可以安全地输入密码并安全存储。

点击此链接以访问重置密码页面一次后,您应立即销毁临时密码(无论他们是否实际重置密码)。链接应该只能工作一次。

答案 1 :(得分:2)

您可以向change_password.php页面添加其他网址参数。例如。 “令牌”。

在生成唯一网址时,生成此令牌的值,并使用TTL(生存时间)和用户名将其存储在数据库中。

当请求到达change_password.php时,检索该参数并在DB中查找以获取TTL和相应的用户名。如果令牌未过期,则可以允许重置/更改该用户的密码。