我有一个问题。当用户名或密码等凭据之一错误时,为什么 Gmail 会抛出类似您输入的电子邮件和密码不匹配
之类的消息。为什么他们不抛出用户容易理解的错误,例如:
如果用户名有效但密码无效,那么它应该抛出一个 诸如
密码不匹配。
之类的消息。如果密码有效但用户名无效,那么它应该抛出一个 诸如
用户名不匹配。
之类的消息。
为什么他们在每种情况下都会抛出类似您输入的电子邮件和密码不匹配
之类的消息?
更具体地抛出错误消息是否存在安全问题?
最佳答案
实际上,new Gmail login page does not do that - 它要求您在第 1 步中输入用户名,然后在第 2 步中输入密码。
如果您透露帐户是否存在,您将开设一个 username enumeration脆弱性。这对于攻击者在密码猜测或网络钓鱼攻击中使用非常有用:
As an attacker if I can use your login or forgotten password page to narrow my list from 10000 targets to 1000 targets, I will.
请注意,某些系统(例如 Gmail 或 Facebook)的用户名被视为公开的,因此这不属于特别高风险的漏洞。
但是,如果您运行“约翰的约会网站”(或阿什利·麦迪逊),并且爱丽丝可以通过尝试使用鲍勃的电子邮件作为用户名的登录表单来查明她的丈夫鲍勃是否是成员(member),那么您就会遇到隐私问题你的双手。有趣的写在这里:Your affairs were never discreet – Ashley Madison always disclosed customer identities 。他们几乎修复了用户枚举错误,但还没有完全修复。
另外,你提出的第二点是不可能的。如果用户输入了无效的用户名但输入了有效的密码,则身份验证系统将无法确定密码是否正确,因为它不知道要验证哪个用户名。即使可以,泄露至少一个用户拥有该密码将是一个安全问题。
关于security - 为什么登录失败时Gmail不提示是用户名还是密码错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30528034/