首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查数据库中用户id的可用性

问检查数据库中用户id的可用性
EN

Stack Overflow用户
提问于 2010-09-13 19:36:44
回答 6查看 607关注 0票数 0

我有一个忘记密码的页面,其中我需要要求用户他的用户id,以提供他的密码从数据库中,它是工作的,但如果任何人输入任何错误的用户id怎么办。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-09-13 19:39:22

您必须执行SELECT以检查该记录是否存在,如果存在,则继续。

票数 1
EN

Stack Overflow用户

发布于 2010-09-13 19:45:21

请注意,这其中存在一定程度的风险。如果您总是返回一条消息,指出用户ID不正确,则可以使用该消息来猜测系统中的用户ID。攻击者可以使用常用名称的变体来暴力破解此表单,并最终得到一个相当大的用户列表。对于任何给定的帐户,这将为他们提供作为该用户登录所需的一半信息。

我建议您显示一条消息,说明已向该帐户的电子邮件地址发送了一封电子邮件,其中包含重置密码(包括重置所需的时间敏感密钥)的说明,而不管是否在系统中找到了该用户ID。如果他们没有收到电子邮件,他们总是可以重试(假设第一次尝试在用户ID中包含一个拼写错误)。如果他们实际上不知道他们的用户ID,可以通过输入他们的电子邮件地址来恢复它(与此表单的行为类似,总是在表单上显示成功,并在适用的情况下发送电子邮件)。

票数 2
EN

Stack Overflow用户

发布于 2010-09-13 20:04:54

您必须执行以下3个步骤来确保严格的安全性。

1)根据用户on从数据库中获取用户信息。如果信息为空,则向用户发送一个错误,说明UserId无效。

2) a)如果您在创建用户时注册了EmailId,则将密码发送到注册邮件。b)如果您没有注册EmailId,请询问并匹配在用户注册时选择的安全问题。

3)如果可能,尝试将点2)的a)和b)点结合起来,以获得更高的安全性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3700011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档