显示在忘记密码过程中的电子邮件地址是安全的
本文关键字:电子邮件地址 安全 过程中 忘记 密码 显示 | 更新日期: 2023-09-27 18:06:02
我有一个asp.net应用程序。在这个应用程序中,我处理[Forget password]
。当用户忘记密码时,我会通过电子邮件发送密码重置链接。
许多用户抱怨忘记了他们在应用程序中输入的电子邮件地址。他们希望我在[Forget password]
部分显示他们的电子邮件地址,以便他们可以检查他们的目标邮件。
安全吗?如果不是,如何确保它?
我的团队领导建议我只显示电子邮件的第一个字母,以便用户可以识别他的电子邮件。
我认为发送重置链接到他们注册的电子邮件是常见的做法。然而,当您考虑到您无法控制电子邮件帐户是否(或者更可能是如何)被泄露(人们将imap设置到客户端电子邮件应用程序中,没有未来的密码挑战,孩子们找出父母的密码,或者您的名字-不一定是尼日利亚的一些邪恶的黑客),那么这种方法可能看起来不那么安全。这部分取决于你在保护什么。
至于你的客户不记得他们使用的是哪个电子邮件帐户——这是一个问题——但我不一定会通过在屏幕上显示他们的电子邮件地址(甚至是其中的一部分)来解决这个问题。我宁愿采取完全不同的方法,并提供安全问题,或者甚至只是让他们创建一个新帐户,如果需要的话。
只显示有限的电子邮件字符并没有什么真正的危险,你可以这样做。
理想情况下,我总是创建两个链接。第一个是"忘记用户名",用户被要求回答他/她的秘密问题。
此外,大多数网站(包括google, facebook等)都确保你输入一个替代的用户联系方式,如辅助电子邮件/手机。这有助于保护用户名,并且您可以稍后通过识别您所选择的通信方式来重置密码。
如果你想听我的建议,那真是个坏主意。如果这封电子邮件应该是私人的,那就连一个字母都不要露出来,因为这对黑客来说是一大堆信息。
很多网站做的是,当用户输入他们的电子邮件并点击提交时,你可以告诉他们他们输入的电子邮件是否在数据库中。如果是,则发送邮件。如果不在数据库中,则显示一条消息,让他们再试一次。如果他们有两封邮件,他们会很快找到好的那封,而不必看邮件的一部分。
您提供给用户的每个信息也提供给了攻击者。如果用户忘记了他的密码和他输入的电子邮件,他仍然可以检查他所有的电子邮件帐户,不是吗?我不会因为有些人记不住自己的密码,也记不住自己所有的电子邮件帐号,就稍微降低应用程序的安全性。
我建议只显示电子邮件地址的一部分。例如,代替joe.smith@gmail.com
show:
joe.smith@*****
joe.*****@gmail.com
j*****@gmail.com