gpt4 book ai didi

java - 为电子邮件确认创建唯一 ID

转载 作者:行者123 更新时间:2023-11-30 05:50:08 25 4
gpt4 key购买 nike

我需要为电子邮件确认创建一个唯一的 ID,因此当客户点击链接时,他们会进入一个页面以输入他们的电子邮件,一旦他们输入了他们的电子邮件,就会向他们发送一封电子邮件。电子邮件中包含一个链接,通过进入该链接,他们可以更改密码。它的过程,但我需要你确认我的步骤,首先我生成一个随机数并将其添加到与用户 ID 关联的数据库中,如果该页面打开,那么我允许他们更改密码,对吗?

最佳答案

您的程序几乎是正确的。不过,您应该注意以下几点:

1) 使 key 不可预测,这样即使知道代码,也没有人可以创建自己的有效 key 。由于您无论如何都将 key 存储在数据库中,因此您可以创建一个“真正随机”的 key ,这比使用已知值(如电子邮件和用户 ID)要好得多。密码重置功能通常是 Web 应用程序安全性中最薄弱的环节。

// this (untested) code reads from the OS random source to create a random id
function createRandomKey($length)
{
$buffer = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM);
$encodedBuffer = base64_encode($buffer);
return substr($encodedBuffer, 0, $length);
}

2) 不要将这个随 secret 钥直接存储在数据库中,而是像处理密码一样处理它并存储它的哈希值。这有助于防止攻击者可以读取您的数据库(SQL 注入(inject)),即使那样他也不会免费获得所有 key 。

3) 给每个 key 一个到期日期,这样“忘记”的 key 就不能再使用了。

4) 密码重置 key 在使用后需要删除,因此在密码修改成功后将其从数据库中删除。

编辑:

抱歉,我错过了您问题中的 Java 标记,而我的示例是用 PHP 编写的。很遗憾,我无法提供 Java 示例,但原理是相同的。

关于java - 为电子邮件确认创建唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14576516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com