OpenID 协议的电子邮件地址未经过验证。
考虑以下情况:
我使用 Gmail 帐户创建了一个 SO 帐户,我的电子邮件是 abc@gmail.com
现在,另一个人有办法在一些也使用 abc@gmail.com 的 OpenID 提供商处伪造,他使用该提供商登录 SO。
现在,SO 将链接这两种登录方法,并且该人可以完全访问我的 SO 帐户。
那么,在实践中,如何将上述黑客攻击的风险降到最低呢?
OpenID 协议的电子邮件地址未经过验证。
考虑以下情况:
我使用 Gmail 帐户创建了一个 SO 帐户,我的电子邮件是 abc@gmail.com
现在,另一个人有办法在一些也使用 abc@gmail.com 的 OpenID 提供商处伪造,他使用该提供商登录 SO。
现在,SO 将链接这两种登录方法,并且该人可以完全访问我的 SO 帐户。
那么,在实践中,如何将上述黑客攻击的风险降到最低呢?
在 Stack Overflow/Stack Exchange 的特定情况下,只有当帐户具有相同的电子邮件地址并且用户从已知用于验证电子邮件地址的服务登录时才会合并帐户。Gmail、Facebook 和 Yahoo 等服务会在注册期间验证您的电子邮件地址,因此可以安全地信任他们返回的电子邮件地址。如果您使用自己的 OpenID 提供程序,则不会被识别,因此不会自动合并帐户。
对于您的方案,您做了几个假设:
将风险降到最低(这绝不是一份详尽的清单,但这是一个开始)