用户名或密码不正确:为什么不指定哪一个?

用户名或密码不正确:为什么不指定哪一个?

登录网站或移动应用程序时,如果输入了错误的用户名/电子邮件或密码,您几乎总是只会收到“用户名或密码不正确”的通知。为什么通常的做法是这样做,而不是具体告诉用户是用户名/电子邮件还是密码不正确?

我的猜测是它在某种程度上是由安全驱动的,但如果是这样,那么通过模糊地告诉用户所提供的某些凭据不正确,在威胁防护方面会提供多大的差别?

我遇到过很多这样的情况 - 特别是在较旧或不常访问的网站上 - 我不知道错误的部分是我的电子邮件、我的密码,还是两者兼而有之。

答案1

这个问题已经解决了在 IT 安全 Stack Exchange 网站上

对于攻击者来说,猜测有效的用户名-密码组合比猜测密码要困难得多。一旦确认某个帐户存在,就可以将其作为攻击目标(也许可以通过 Facebook 等网站上的一些外部研究)。

如果网站同时在数据库中查询用户凭证的两个部分(用户名和密码哈希),或者如果身份验证层不透明并且仅返回用户是否合法,则返回通用身份验证失败也会更加方便。

一般来说,透露过多不必要的信息并不好。一些攻击者可能想要获取(“枚举”)用户列表,也许是为了进行网络钓鱼。

另外,如果用户错误地输入了用户名,输入了其他用户的名字,但得到的是自己的密码(而不是其他用户的密码),该怎么办?那么消息会显示“密码错误”,即使错误实际上是在用户名中。

答案2

你的猜测是正确的。指定用户名不正确是一种敏感数据泄露只需使用登录表单,攻击者就可以确定特定的电子邮件地址/用户名是否在网站上拥有账户。

答案3

这纯粹是出于安全和隐私方面的考虑... 隐私方面,由于大多数人在多个网站上使用相同的用户名,因此确认用户名的存在会泄露某人在该系统上有账户,这可能很重要,也可能不重要,具体取决于网站或用户,但仍然会泄露一些私人信息。安全方面相当简单,如果您尝试验证随机用户名和密码,告诉他们用户名是正确的,可以减少黑客攻击的可能组合,大大减少时间并增加黑客攻击的机会。还有其他影响,但这些是最重要的。

相关内容