使用http post评级系统 - 避免滥用

时间:2011-06-19 14:22:13

标签: php mysql html sql http-post

我有一个用于使用POST的html用于评估图像。这些图像是使用SQL随机选择的。

一旦我提出,我注意到一些用户(使用用户ID识别)能够在短时间内为他们选择的图像投票多次。他们很可能正在利用http POST处理方式的缺陷。

作为临时解决方案,我添加了一些代码,以检查图片是否在过去一小时内被同一个人评分过。这可行但不理想,因为图像可以在较短的时间内随机出现。

那么,我怎样才能确保对显示的图像进行单一评级,并拒绝同一随机选择的任何连续评级?

P.S:我可能会向匿名用户开放,因此欢迎使用会话的任何建议。

2 个答案:

答案 0 :(得分:6)

制定UNIQUEuser_id的复合image_id约束。然后以INSERT ... ON DUPLICATE KEY UPDATE

格式运行查询

答案 1 :(得分:1)

如果您有可靠的方式在投票时识别用户(例如,用户必须注册参与),那么只需在用户已投票选择哪些图像并且不接受任何进一步投票的信息中存储(或者只是用最后一次投票覆盖结果。)

如果您不识别用户,您可能永远无法获得可靠的系统,因为恶意用户可能会使用多个代理等来为特定图像创建投票。

您还可以尝试通过为每个投票发布一个唯一的事务标识符来模糊投票计数过程,该投票标识符只能使用一次,但您保持用户和图像关联的机密性。那么至少你不能重播或制作投票(虽然它不会阻止某人重新加载页面加载并反复投票)。