1

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

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

这安全吗?如果不是如何保障呢?

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

4

5 回答 5

1

如果您需要我的建议,这是一个非常糟糕的主意。如果电子邮件应该是私人的,甚至不要显示它的信件,因为这对于黑客来说将是很多信息。

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

于 2013-03-26T17:15:02.007 回答
1

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

至于您的客户不记得他们使用了哪个电子邮件帐户——这是一个问题——但我不一定会通过在屏幕上显示他们的电子邮件地址(甚至是其中的一部分)来解决这个问题。我宁愿完全采用不同的方法,提供安全问题,或者如果需要,甚至让他们创建一个新帐户。

于 2013-03-27T17:05:49.360 回答
1

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

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

此外,大多数网站(包括 google、facebook 等)都确保您输入备用用户联系方式,例如辅助电子邮件/手机。这有助于保护用户名,并且您可以稍后通过识别您选择的通信方式来重置密码。

于 2013-03-26T17:14:26.050 回答
1

你给用户的每一个信息,你也给了攻击者。如果用户忘记了他的密码和他输入的电子邮件,他仍然可以检查他所有的电子邮件帐户,不是吗?我不会因为那些不记得他们的密码并且不记得他们拥有的所有电子邮件帐户的人而稍微降低应用程序的安全性。

于 2013-03-26T17:20:41.913 回答
0

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

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

等等...

于 2013-03-26T17:13:23.873 回答