【发布时间】:2014-12-11 04:10:59
【问题描述】:
我正在构建一个新的 MVC 应用程序。 考虑到这个“忘记密码”流程:
1)您输入了一封电子邮件。
2)您按“发送恢复密码”。
3) 一封电子邮件在收件箱中等待,按下其中的链接会将您带到“新密码”屏幕。
在第 1 阶段,您提供的电子邮件没有任何限制。 (它甚至可能不存在)。
此流程是否存在重大安全漏洞?
【问题讨论】:
-
如果该电子邮件地址不存在用户帐户会怎样?
-
正如我所说,没有限制。可以是任何电子邮件
-
这就是有人登录的原因吗?否则,您将哪个帐户的密码发送到提供的电子邮件地址。如果他们已登录,为什么他们需要“恢复”密码,将密码发送到帐户电子邮件以外的任何帐户都是 IMO 的巨大安全风险。如果攻击者发现漏洞,他们可以将每个人的密码发送到他们自己的电子邮件地址,如果您只发送到帐户地址,攻击者也必须有权访问该电子邮件帐户。
-
@sa_ddam213 - 这听起来像是一个自定义链接,当且仅当您输入正确的电子邮件地址时您才会获得。希望如果实施正确,电子邮件输入表单不会告诉您是否输入了错误的电子邮件。
-
@Tommy,
there is no limitations on the email you provide. (It may not even exist).我读到当我输入任意电子邮件地址并将密码发送到该电子邮件时,我仍然很好奇这封电子邮件是如何链接到拥有密码,问题中没有太多细节,所以我假设了我的大部分评论:),所以我猜用户已经登录,这是我主要关心的问题,但是如果他们登录了为什么要重置,为什么不使用asp更改密码功能,但我相信他有他的理由
标签: asp.net-mvc-4 password-recovery forgot-password