1

问题假设/条件:

  1. 系统中存在具有电子邮件foo@bar.com(未验证)的用户。
  2. 访客未登录系统(没有当前会话,例如新浏览器)。
  3. 访客通过 OAuth(用户授权)使用 Google 帐户注册/登录。
  4. 系统会收到带有 uid 的回调和电子邮件foo@bar.com[已由 Google 验证]。

我在这里看到三个选项:

A. 使用电子邮件 foo@bar.com 将访问者登录到现有帐户。这有一些安全隐患。

B. 要求输入密码[假设系统中有密码,多个 OAuth 提供者可能不是这种情况] 并在有效的情况下将它们登录到现有帐户。

C. 拒绝登录/注册,说电子邮件已被使用,鼓励用户在连接谷歌之前登录。

选项#A 的安全风险是什么?

我自己想出的:

可以执行“预期攻击”,即攻击者预期注册并在目标之前在系统上创建帐户。在目标使用 OAuth 注册后,他将在该帐户上拥有一个活动会话。在执行#A 之前清除帐户上的所有会话会失败。

4

2 回答 2

0

当用户在 Google 中通过 OAuth 登录时,您可以确定您从 Google 返回的电子邮件地址确实属于该用户。因此,您似乎担心的是该电子邮件地址在您的系统上已经知道的用户不拥有该电子邮件地址。这应该在他注册时就已经通过电子邮件对话发现了。但如果不是,您可能需要重置密码并向您这样做的真实用户发送电子邮件,以及出于什么原因。如果用户当前已登录,您可能还希望将其注销。用户仍然可以访问他的数据,但只能通过他的 OAuth 登录会话或回复电子邮件。该电子邮件应说明这是一种预防措施,因为无法确定它是否真的是同一个人。

于 2012-10-01T19:07:24.507 回答
0

“意外攻击”也可能发生:

在第 1 步中,使用 address 注册的用户foo@bar.com实际上打算输入fuu@bar.com,但输入了一个错字:foo而不是fuu

现在,Google 用户使用 Oauth 和 注册foo@bar.com,并以此方式劫持了 step-1 用户的帐户。不小心:-) 因为 step-1 用户的错字。

因此,第一步用户可以预期攻击 Google 用户,或者 Google 用户可以意外攻击第一步用户。(至少现在我想不出任何其他攻击。)

于 2015-11-17T07:04:54.077 回答