0

我有一个简单的朋友请求系统,其中用户单击包含目标用户的 user_id 的按钮,此 id 并传递给在 DB 中创建请求行的函数。

我不希望用户能够请求任何 user_id 作为朋友,只是我建议的那些。

所以我需要一种方法来屏蔽 user_id,这样恶意用户就不会开始插入数字并使用自动工具发送请求。

我想到了一个简单的乘法系统。所以我取 user_id * really_long_number ,然后在请求函数中除以相同的数字。恶意用户不知道此 real_long_number 的值,因此不知道 user_id。

因此,如果:

user_id = 1
really_long_number = 12345678
key = 12345678

但我认为这种策略并不是最好的,通过查看系统生成的足够多的数字可以很容易地推断出来。

你有什么建议?

4

1 回答 1

0

您想要的是每个用户的不可猜测的 uniq 键,然后将其传递给您的按钮而不是用户 ID。您可以在用户表中有一个字段,例如myuniqkey在创建用户时将填充类似这样的内容:

hash('sha512', uniqid().'myappsecretpass'); 
于 2013-11-03T13:45:39.397 回答