23

当用户输入错误密码时,从安全角度来看,以下两条错误消息有什么区别?

错误的用户名或密码。

密码错误。

例如,当您在 上输入错误的密码时Gmail.com,它会告诉您“您输入的用户名或密码不正确”。

出于安全原因是否有任何考虑?我认为错误消息:“您输入的密码不正确”对用户来说更清楚,而且,检查用户名是否存在非常容易Gmail.com:只需单击“无法访问您的帐户?” 并输入用户名。如果用户名不存在,它会告诉你。

4

6 回答 6

30

这个想法是不给黑客额外的信息。如果您输入错误的密码,您就告诉黑客他们有正确的用户名,反之亦然。尽管您说的是真的,但在某些网站上,可以确定您是否通过其他方式猜到了用户名。

于 2013-02-17T14:33:03.987 回答
23

最简单和最常用的短语是:

“您输入了无效的用户名或密码”

这背后的原因是为了防止有人试图通过“猜测”密码来暴力破解您的帐户。如果攻击者收到详细说明密码不正确的错误,那么他们可以尝试不同的密码,直到正确为止。

但是,如果您提供类似上述的通用消息,则攻击者不知道用户、密码或两者的组合是否正确。

法比奥@fcerullo

于 2013-02-18T12:45:02.897 回答
5

只是添加一些额外的信息。OWASP 指南为您提供有关此问题的建议

https://owasp.org/www-project-cheat-sheets/cheatsheets/Authentication_Cheat_Sheet.html#Authentication_and_Error_Messages

无论用户 ID 或密码是否不正确,应用程序都应以一般错误消息进行响应。它也不应指示现有帐户的状态。

于 2017-01-26T12:35:39.767 回答
5

好吧,从不同的角度来看,安全方面,这两条消息并没有太大的不同。至少对于允许注册的网站。黑客可以随时进入注册页面并尝试使用上述详细信息进行注册。当然,您的网站最初是由模糊性保护的,它会立即大喊“该用户名已被占用!” 或“该电子邮件已注册!” 看起来那时安全性是一个神话。

于 2018-08-21T16:01:42.883 回答
3

怎么样

无效证件。请再试一次。

于 2021-02-17T22:30:14.503 回答
2

在某些情况下,您不希望攻击者能够猜测帐户的存在。因此,您将始终返回一般错误消息,以便攻击者无法猜测此帐户是否存在。

在 GMAIL 上下文中,可能是 gmail 不希望人们挖掘现有的电子邮件地址以供垃圾邮件机器人使用。

您自己可以决定在您的应用程序中是否需要强制执行安全性,或者您是否可以提供更多用户友好的错误消息。

于 2013-02-17T14:34:00.470 回答