将两个用户帐户链接在一起


Linking two user accounts together

我正在为我的网站用户构建一种方法,将他们的帐户链接在一起,以便在他们之间共享资源。到目前为止,我的流程是:

  • 1) 用户输入他想要链接的用户的电子邮件地址。
  • 2) 如果找到匹配项,这些用户将收到一封电子邮件。
  • 3) 电子邮件包含确认链接。如果收件人单击此按钮,将形成两个帐户之间的连接。

想知道我最后一步需要有多安全。我的确认链接的格式为:domain.com/link-confirm.php?fromid=xxx&toid=yyy

从理论上讲,如果任何人都可以欺骗此链接,如果他们知道目标的用户ID,从而在未经许可的情况下建立连接。

我尝试对两个用户 ID 进行哈希处理,然后扫描用户数据库以查找匹配项,但 password_verify 函数运行时间太长,以至于页面超时(而且只有 1000 个用户)。

我想知道的是:我上面的计划有意义吗?有没有更整洁的方法?我担心欺骗是对的吗(连接帐户本身不会在用户之间共享任何数据,它只是使任何用户都可以启动)?

谢谢

您可以只加密两个 id 值,并在从 get 获取后解密它们,此处不需要使用哈希。这样,就需要数千年的时间才能有人蛮力欺骗他们。

您可以做的是为每个帐户关联请求生成一些唯一数据,并要求该唯一数据与关联接受请求一起发送。

因此,例如用户 A 请求与用户 B 链接,您将请求与一些唯一数据(如随机哈希和时间戳)一起存储,然后当用户 B 单击其电子邮件中的"接受"时,他将被发送到您服务器上的页面。电子邮件中的链接包含提交到页面的唯一数据。您检查唯一数据是否确实是用户 A 提交请求时生成的数据,如果是,则检查 boom,则链接用户。