【发布时间】:2013-10-27 11:19:04
【问题描述】:
我的公司定期在互联网上举办比赛。这些包括简单的多项选择测验,最快完成测验的人将赢得奖品。
最近我们在作弊者方面遇到了很大的问题(很多不到一秒的条目,手动完成是不可能的)。时间是服务器端计算的,所以作弊者不能直接操纵时间。唯一可行的作弊方法是编写一个脚本来自动填写和提交测验。
我们已经实施了以下措施来尝试解决这个问题:
- 将用户限制为一个条目(通过检查 IP 并询问电子邮件地址)
- 从题库中随机抽取问题(不幸的是,每个测验都必须翻译,因此由于我们的翻译资源有限,实际题库规模很小)
- 随机问答顺序
- 随机化测验元素类名称和 ID
即使采用了上述所有技术,我们仍然会发现设法作弊的人。
作为最后的手段,我们正在考虑用图像替换测验文本,并随机化图像名称,但这对于可访问性来说将是一场噩梦,并且仍然可能通过使用图像比较来欺骗。因此,我们真的希望尽可能避免这种情况。
所以我想知道这里是否有人对如何解决这个问题有任何想法?
【问题讨论】:
-
验证码应该可以解决问题! captcha.net
-
简单,会话和令牌。
-
多人可以在同一个IP上。仅供参考。
-
您是否考虑过转向基于文本的答案(写一个简短的回复)?阅读答案会花费您更多时间,但会使即时回答变得非常困难
-
Have a look at this 这是我使用的(会话/令牌)效果很好。您只需要根据需要对其进行修改。此外,使用数据库也将被证明是有益的。
标签: javascript php anti-cheat