我正在为我的网站的用户构建一个方法,将他们的帐户链接在一起,以便可以在他们之间共享资源。我的过程到目前为止是:将两个用户帐户链接在一起
- 1)用户输入他想要链接的用户的电子邮件地址。
- 2)如果找到匹配项,这些用户会收到一封电子邮件。
- 3)电子邮件包含确认链接。如果收件人点击此项,则会形成两个帐户之间的连接。
我想知道我需要如何安全地与这最后一步。我的确认链接格式为:domain.com/link-confirm.php?fromid=xxx&toid=yyy
从理论上讲,如果任何人知道其目标的用户标识,从而在未经许可的情况下建立连接,任何人都可能欺骗该链接。
我试着哈希两个用户标识符,然后通过用户数据库扫描匹配,但password_verify
函数需要很长时间才能运行,页面超时(并且只有1000个用户)。
我想知道的是: 我上面的计划是否有意义? 有没有更好的方法来做到这一点? 我是否有权利关注欺骗行为(连接帐户本身并不共享任何数据,它只是使用户可以启动)?
感谢
你可以对两个id值进行加密,并在获取它之后 - 解密它们,不需要在这里使用哈希值。那样的话,需要数千年的时间才能让某人暴力欺骗他们。 –
在URL中加密,散列或生成信息。 'url?id = somegeneratedstring',你应该有一个表格将散列或生成的字符串转换为用户名和二级用户名。通过添加更新的'INSERT'的附加时间戳列,您还可以设置链接到期时间。 – Xorifelse
感谢所有的回复。 @ n-dru:我采用了你的加密思路,它的工作非常整齐。发布它作为答案,我会接受它。 – Rob