在忘记密码进程中显示电子邮件地址是否安全?

时间:2013-03-26 17:09:17

标签: c# asp.net security user-experience

我有一个asp.net应用程序。在这个应用程序中,我处理[Forget password]。当用户忘记密码时,我会通过电子邮件发送密码重置链接。

许多用户抱怨忘记他们在应用程序中输入的电子邮件地址。他们希望我在[Forget password]部分显示他们的电子邮件地址,以便他们查看目标邮件。

这样安全吗?如果不是如何保护它?

我的团队负责人建议我只显示电子邮件中的第一个字母,以便用户识别他的电子邮件。

5 个答案:

答案 0 :(得分:1)

仅显示有限的电子邮件字符并没有真正的危险,您可以继续使用它。

理想情况下,我总是创建两个链接。第一个是“忘记用户名”,其中要求用户回答他/她的秘密问题。

此外,大多数网站(包括谷歌,Facebook等)都确保您输入其他用户联系人详细信息,如辅助电子邮件/移动。这有助于保护用户名,并且您可以通过以后识别您选择的通信方式来重置密码。

答案 1 :(得分:1)

如果你需要我的建议,那就太糟糕了。如果电子邮件应该是私有的,甚至不要显示它的信件,因为它会为黑客提供大量信息。

很多网站做的是当用户输入他们的电子邮件并点击提交时,您可以告诉他们他们输入的电子邮件是否在数据库中。如果是,则发送电子邮件。如果它不在数据库中,请显示一条消息并让他们再试一次。如果他们有2封电子邮件,他们很快就会找到好的电子邮件,而无需看到电子邮件的一部分。

答案 2 :(得分:1)

您提供给用户的每条信息也会提供给攻击者。如果用户忘记了他输入的密码和电子邮件,他仍然可以查看他所有的电子邮件帐户,不是吗?我不会轻微降低应用程序的安全性,因为那些记不起密码且无法记住他们拥有的所有电子邮件帐户的人。

答案 3 :(得分:1)

我认为将重置链接发送到他们注册的电子邮件是很常见的做法。 然而,当您考虑到您无法控制该电子邮件帐户是否已被入侵(或更可能 )时(人们将IMAP设置为客户端电子邮件应用程序)没有未来的密码挑战,孩子们找出了妈妈和爸爸的密码,或者你的名字 - 不一定是尼日利亚的一些邪恶的黑客),那么这种方法可能看起来不那么安全。部分原因仅取决于您所保护的内容。

至于您的客户不记得他们使用的是哪个电子邮件帐户 - 这是一个问题 - 但不是我必须尝试通过在屏幕上显示他们的电子邮件地址(甚至是部分电子邮件地址)来解决。我宁愿采取不同的方法,提出安全问题,甚至只是让他们在必要时创建一个新帐户。

答案 4 :(得分:0)

我建议只显示部分电子邮件地址。例如,而不是joe.smith@gmail.com显示:

joe.smith@*****
joe.*****@gmail.com
j*****@gmail.com

依旧......