有关屏蔽的任何提示user_id与朋友请求系统


Any tips on masking user_id with friend request system?

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

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

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

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

所以如果:

user_id = 1
really_long_number = 12345678
key = 12345678

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

你有什么建议?

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

hash('sha512', uniqid().'myappsecretpass');