更正拼写错误的用户名并使用有效用户名提示用户会带来安全风险吗?
我最近尝试登录 facebook 并拼错了我的电子邮件。他们用下面的信息提示我。
以 {username} 身份登录
{email}@gmail.com · 不是你?
请确认密码 您输入的电子邮件或用户名似乎有轻微的拼写错误。我们已为您更正,但要求您重新输入密码以增加安全性。
我知道用户名并不是真正的秘密,但是当网站将拼写错误修正为正确的时,他们似乎将“不是秘密”走得太远了。
更正拼写错误的用户名并使用有效用户名提示用户会带来安全风险吗?
我最近尝试登录 facebook 并拼错了我的电子邮件。他们用下面的信息提示我。
以 {username} 身份登录
{email}@gmail.com · 不是你?
请确认密码 您输入的电子邮件或用户名似乎有轻微的拼写错误。我们已为您更正,但要求您重新输入密码以增加安全性。
我知道用户名并不是真正的秘密,但是当网站将拼写错误修正为正确的时,他们似乎将“不是秘密”走得太远了。
正如你所说,你在 facebook 上看到了这个 - 所以我尝试了这些步骤:
由于仅当我已经在这台 PC 上成功登录 FB 时,更正似乎才有效,所以我想说这不是 facebook 中的漏洞。
编辑:添加了新的测试用例;感谢 Zymus、simbabque 和 Micheal Johnson 的建议
对于大多数网站来说,允许用户名或电子邮件迭代可能是一个安全问题,但对于 Facebook 来说却不是。对于像 Facebook 这样大的网站,查找具有帐户的电子邮件很容易,因为这些网站拥有如此多的用户。这适用于其他庞大的用户数据库,如谷歌和微软。这些公司只需要在他们的用户名/电子邮件数据库(某种程度)为公众所知的情况下保持安全。
也就是说,如果这是您第一次使用相同的浏览器、计算机甚至 IP 地址使用 Facebook,我会感到惊讶。对他们来说,完成用户名是没有意义的,因为任何看起来像电子邮件的字符串都可能接近他们的一个或多个用户。我怀疑 Facebook 有某种方式知道你就是你。
根据您在此处提供的详细信息,我会说“是的,这是一个安全风险”,因为它 100% 可以识别谁在网站上注册。我不知道在放置块之前可以提交多少次请求(验证码、IP 块等),但攻击者可以简单地“暴力破解”一组用户名和电子邮件以获得一个非常清晰的列表谁使用该网站。
实际上,系统不会告诉您输入错误的内容,但脚本可以通过将之前与之后进行比较来很快地告诉您。
更糟糕的是,使用用户名和电子邮件列表,因为(我希望)人们倾向于重用用户名(就像电子邮件地址一样),所以这些是其他网站的目标列表。
看起来很可疑恕我直言。
很惊讶……会认为 FB 会比这更有意义。