Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openid 像StackOverflow这样的网站如何防止以分散的方式基于未经验证的电子邮件地址链接帐户?_Openid - Fatal编程技术网

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

Openid 像StackOverflow这样的网站如何防止以分散的方式基于未经验证的电子邮件地址链接帐户?,openid,Openid,未验证OpenID协议的电子邮件地址 考虑以下情况: 我使用Gmail帐户创建了一个SO帐户,我的电子邮件是abc@gmail.com 现在,另一个家伙有办法在某个OpenID提供商处伪造,该提供商也在使用abc@gmail.com,并使用此提供程序登录到SO 现在,SO将连接这两种登录方法,这家伙可以完全访问我的SO帐户 因此,在实践中,如何最大限度地降低上述黑客行为的风险?对于您的场景,您要做几个假设: 中继方(在您的示例中也是如此)不验证提供者,只通过标识符(即电子邮件)标识用户 中继方

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

考虑以下情况:

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

  • 现在,另一个家伙有办法在某个OpenID提供商处伪造,该提供商也在使用abc@gmail.com,并使用此提供程序登录到SO

  • 现在,SO将连接这两种登录方法,这家伙可以完全访问我的SO帐户


  • 因此,在实践中,如何最大限度地降低上述黑客行为的风险?

    对于您的场景,您要做几个假设:

    • 中继方(在您的示例中也是如此)不验证提供者,只通过标识符(即电子邮件)标识用户
    • 中继方信任任何提供方提供身份验证(例如假OpenID提供方)
    将风险降至最低(这并不是一份详尽的清单,但只是一个开始)

    • 用户的OpenID至少应为(提供商+电子邮件)
    • 这与OpenID的想法背道而驰,但只与受信任的提供者(而不是任何人)进行中继
    • 中继方应使用nonce
    • RP/OP之间的ssl

    在堆栈溢出/堆栈交换的特定情况下,只有当帐户具有相同的电子邮件地址并且用户从已知的验证电子邮件地址的服务登录时,才会合并帐户。Gmail、Facebook和Yahoo等服务会在注册过程中验证您的电子邮件地址,因此信任他们返回的电子邮件地址是安全的。如果您使用自己的OpenID提供商,那么它将无法被识别,因此该帐户将不会自动合并。

    我猜,使用提供商+电子邮件对。