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

Linking two user accounts together

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

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

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

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

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

谢谢

您可以为每个帐户 linking 请求生成一些唯一数据,并要求将这些唯一数据与 linking 接受请求一起发送。

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

您可以只加密这两个 id 值,并在从 get 获取后解密它们,这里不需要使用哈希。这样一来,有人需要花费数千年的时间来暴力欺骗他们。