-3

Facebook 上的一些社交游戏允许用户发布一个指向他们的提要的链接,说“点击这里获得奖金金币——仅限前 5 人”。

我们如何生成这样的链接?

任何人都不应该轻易地“生成”链接作为作弊方法。

此外,应该添加哪些数据库表来处理:

1) 奖金最多可领取 5 次
2) 必须由不同的人领取

(每个人在 Facebook 等社交网络平台上都有一个唯一的数字 ID)

?

更新:我想的方法是在 Prize 表中获取下一个主 ID(整数索引),并使用一些密钥对其进行 md5 以获得“奖品代码”,并确保它不在“PrizeClaimed”中表——如果已经存在,只需使用下一个主 ID(通过添加记录并重新计算 md5 直到找到唯一的)。这个 PrizeClaim 表是 Prize_code 和 user_id 的联结表,所以一个人可以领奖,一个人可以领多个奖。如果当一个人点击链接时,我们将prize_code和user_id的记录添加到表中——但前提是匹配prize_code获得的记录数为4或更少。如果已经有 5 个,那么只需报告“为时已晚——所有人都声称”。不知道这个方法怎么样,有没有漏洞,改进,

(比如 Prize 表只是一个获取 ID 的表,它没有存储任何其他内容。也许我们可以使用当前时间戳加上微秒加一个随机数来做 md5,如果prize_code 已经存在,则再次重复。在这种情况下,我们可以忘记奖品表。)

4

1 回答 1

0

您创建一个具有当前有效哈希值的表,以及可以声明的最大计数,以及另一个表,您可以在其中保护已单击链接的所有 id。通过它,您可以检查链接是否仍有点击,并且只有不同的人点击了它。

于 2010-04-25T16:05:59.790 回答