我有一个简单的朋友请求系统,其中用户点击按钮,其中包含目标用户的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但我认为这种策略并不是最好的,通过查看系统生成的足够多的数字就可以很容易地推断出这一点。
你有什么建议?
发布于 2013-11-03 21:45:39
您需要的是为每个用户提供一个不可猜测的uniq密钥,然后将其传递给您的按钮,而不是用户ID。您可以在用户表中有一个字段,例如myuniqkey,它将在创建用户时填充如下内容:
hash('sha512', uniqid().'myappsecretpass'); https://stackoverflow.com/questions/19753408
复制相似问题