像StackOverflow这样的网站如何防止以分散的方式链接未经验证的电子邮件地址的帐户?

时间:2013-06-25 18:17:02

标签: openid

未验证OpenID协议的电子邮件地址。

考虑以下情况:

  1. 我使用Gmail帐户创建了一个SO帐户,我的电子邮件是abc@gmail.com

  2. 现在,另一个人有办法在某个OpenID提供商处伪造,该提供商也使用abc@gmail.com,并使用此提供商登录SO。

  3. 现在,SO将链接这两种登录方式,并且该人可以完全访问我的SO帐户。

  4. 那么,在实践中,如何最大限度地降低上述黑客的风险?

2 个答案:

答案 0 :(得分:0)

对于您的场景,您正在做出几个假设:

  • 中继方(在您的示例中为SO),不验证提供商,仅按标识符识别用户(即电子邮件)
  • 中继方信任任何提供身份验证的提供商(例如假的OpenID提供商)

尽量降低风险(这绝不是一个详尽的清单,但它是一个开始)

  • 用户的OpenID至少应该是(提供商+电子邮件)
  • 这与OpenID理念相反,但只接受可信赖的提供商,而不仅仅是任何人
  • 中继方应使用nonce
  • 在RP / OP之间的ssl

答案 1 :(得分:0)

在Stack Overflow / Stack Exchange的特定情况下,只有当用户使用相同的电子邮件地址从已知验证电子邮件地址的服务登录时,才会合并帐户。 Gmail,Facebook和Yahoo等服务会在注册时验证您的电子邮件地址,因此可以安全地信任他们返回的电子邮件地址。如果您使用自己的OpenID提供商,则无法识别,因此该帐户不会自动合并。