我的网站上有一个基于开放标识的身份验证系统。如何在请求完成时验证我的openid.op_endpoint
偶尔,用户将有[email protected]
下注册了一个账号,他们会尝试使用谷歌的开放ID提供https://www.google.com/accounts/o8/id
登录,在这种情况下,我想自动帐户关联,并记录它们。
当进程完成我从某个地方得到一个有效载荷,声称openid.op_endpoint=https://www.google.com/accounts/o8/id
。
我的问题:
- 我能相信
openid.op_endpoint
是正确的?这可以通过恶意的openid提供商以某种方式欺骗吗?
为了说明,可以说在http://evil.org
作为他们的OpenID提供商有人类型,我能以某种方式最终得到一个请求,声称openid.op_endpoint
是谷歌?我是否需要存储额外的信息来对付现时验证?
该规范是kind of tricky了解
看到我的扩展问题。 – 2010-03-11 02:01:26
嗨,山姆。你描述的场景对攻击者来说当然是可能的。但是正确实施的OpenID RP不会被愚弄。一堆测试看到RP不容易受到这样的攻击:http://test-id.org/RP/VerifyAssertionDiscovery.aspx – 2010-03-11 05:32:31