【发布时间】:2023-04-07 03:17:01
【问题描述】:
我对我的程序员关于密码重置功能的推理有了一点了解。有人可以告诉我以下哪个更安全,或者它们是否相等?
选项 1:向用户发送一封包含以下内容的电子邮件:
Url: http://mysite/reset/user%mail.com
CODE: 57583
然后用户会被带到一个他们必须手动输入代码的页面,但电子邮件已填充到网络表单中。
选项 2:向用户发送以下电子邮件:
URL: http://mysite/reset/user%mail.com&code=57583
我不是程序员,如果这是一个简单的问题,或者我的第二个网址格式不正确,我很抱歉,我的意思是,在示例 1 中,用户必须手动输入代码,而在第二个示例中表单已预先填充了代码。
那么它们是否会像另一个一样有效地安全,或者它们是否具有显着的安全优势?
【问题讨论】:
-
我不会说它们中的任何一个都会带来任何真正的安全风险。好的,首先我会在 MD5/SHA 或其他散列中使用“代码”来 /kind of / 对其进行一点加密。我希望“用户”可以输入他们的详细信息进行重置,然后通过电子邮件向他们发送一个“重置链接”,其中他们的新临时密码仅通过电子邮件发送,他们必须在其中输入密码。所以用户必须手动输入他们的新密码而不是代码。希望这会有所帮助:)
-
我会结合您的电子邮件地址和您的代码并对其进行加密以获得哈希值。将电子邮件中的哈希作为 mysite/reset/hash 发送,然后使用它。
-
使用选项 1 您将获得非常微不足道的安全优势,但不足以产生重大影响。但是,它的缺点是对用户不太友好。
标签: php forms login email-validation