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

时间:2016-02-27 14:29:28

标签: php user-accounts

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

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

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

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

我尝试对两个用户ID进行散列,然后在用户数据库中扫描匹配项,但password_verify函数需要很长时间才能运行该页面超时(并且只有1000个用户)。

我想知道的是: 我的计划是否有意义? 有一种更简洁的方式吗? 我是否正确地关注欺骗(连接帐户本身并不共享用户之间的任何数据,它只是使任一用户都可以启动)?

由于

2 个答案:

答案 0 :(得分:1)

你可以加密这两个id值,在获得它之后 - 解密它们,哈希不需要在这里使用。这样,人们需要数千年的时间来蛮力欺骗他们。

答案 1 :(得分:0)

您可以做的是为每个帐户链接请求生成一些唯一数据,并要求使用链接接受请求发送唯一数据。

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