我目前是第一次在我的网站上实现 Facebook 登录,但我对它的安全性有一些疑问。
我已经有一个包含用户的数据库,并且为每个用户存储了一个电子邮件地址,所以我真的需要检查我从 Facebook 获得的电子邮件地址是否已经存在于我的数据库中,否则我会遇到一些问题重复用户。如果用户已经存在,我只需将来自 Facebook 的数据合并到我网站上的现有帐户中,然后连接用户。否则,我为他创建一个帐户。
但事情是这样的:
Alice 使用电子邮件地址alice@users.com在我的网站上连接,但Alice 没有使用该电子邮件地址在 Facebook 上注册
Bob 使用 Alice 的电子邮件地址alice@users.com在 Facebook 上注册,并使用在任何电话号码上收到的 SMS 验证帐户(我检查过,这是可能的,无需单击通过电子邮件收到的链接即可验证帐户)。我同意 Alice 会在她的电子邮件地址上收到通知,但是这仍然是可能的。
Bob 使用 facebook connect 触发登录我的网站,同时使用 Alice 的电子邮件地址在 Facebook 上连接。
Bob 的 Facebook 帐户是活动的并且经过验证,我必须假设他已经在我的网站上有一个帐户,因为alice@users.com已经在我的数据库中,所以我连接他而不是 Alice,他可以在 Alice 的帐户上使用我的网站。
=> 我在几个网站上尝试过这种情况,只要我知道电子邮件地址,我就可以连接到其他人的帐户(我创建的虚假 Facebook 帐户;))。
有谁知道如何防止这些情况?