security - 为什么登录失败时Gmail不提示是用户名还是密码错误?

标签 security email gmail

我有一个问题。当用户名或密码等凭据之一错误时,为什么 Gmail 会抛出类似您输入的电子邮件和密码不匹配之类的消息。为什么他们不抛出用户容易理解的错误,例如:

  1. 如果用户名有效但密码无效,那么它应该抛出一个 诸如密码不匹配。之类的消息。

  2. 如果密码有效但用户名无效,那么它应该抛出一个 诸如用户名不匹配。之类的消息。

为什么他们在每种情况下都会抛出类似您输入的电子邮件和密码不匹配之类的消息?

更具体地抛出错误消息是否存在安全问题?

最佳答案

实际上,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/

相关文章:

ios - SecPKCS12Import when p12 requires an empty passphrase

security - Symfony2 授权 : Voters Vs. ACL

email - 使用 sieve 将电子邮件移至收件箱的子文件夹

php - XAMPP 1.8.0、MercuryMail 和 mail() 在收件箱中没有收到邮件

python - 使用 Gmail API 从 Gmail 下载附件

c# - 如何从 C# 向 Gmail 发送电子邮件

发布包含敏感数据的 HTTPS GET 请求的安全隐患

security - 自定义 Glassfish 安全领域不起作用(无法找到 LoginModule)

java - 用Java发送/接收电子邮件

google-apps-script - 获取 Gmail 类别