【问题标题】:Prevent cheating in a timed online quiz防止在定时在线测验中作弊
【发布时间】:2013-10-27 11:19:04
【问题描述】:

我的公司定期在互联网上举办比赛。这些包括简单的多项选择测验,最快完成测验的人将赢得奖品。

最近我们在作弊者方面遇到了很大的问题(很多不到一秒的条目,手动完成是不可能的)。时间是服务器端计算的,所以作弊者不能直接操纵时间。唯一可行的作弊方法是编写一个脚本来自动填写和提交测验。

我们已经实施了以下措施来尝试解决这个问题:

  • 将用户限制为一个条目(通过检查 IP 并询问电子邮件地址)
  • 从题库中随机抽取问题(不幸的是,每个测验都必须翻译,因此由于我们的翻译资源有限,实际题库规模很小)
  • 随机问答顺序
  • 随机化测验元素类名称和 ID

即使采用了上述所有技术,我们仍然会发现设法作弊的人。

作为最后的手段,我们正在考虑用图像替换测验文本,并随机化图像名称,但这对于可访问性来说将是一场噩梦,并且仍然可能通过使用图像比较来欺骗。因此,我们真的希望尽可能避免这种情况。

所以我想知道这里是否有人对如何解决这个问题有任何想法?

【问题讨论】:

  • 验证码应该可以解决问题! captcha.net
  • 简单,会话和令牌。
  • 多人可以在同一个IP上。仅供参考。
  • 您是否考虑过转向基于文本的答案(写一个简短的回复)?阅读答案会花费您更多时间,但会使即时回答变得非常困难
  • Have a look at this 这是我使用的(会话/令牌)效果很好。您只需要根据需要对其进行修改。此外,使用数据库也将被证明是有益的。

标签: javascript php anti-cheat


【解决方案1】:

也许只有在上一个问题得到回答后才使用 AJAX 加载下一个 随机 问题。我希望这会有所帮助。

【讨论】:

  • 我不确定这是否可行,因为如果脚本正在执行此操作,那么在它之前的问题就会得到回答......只是它很快就得到了回答!
  • 如果下一个问题是随机的,我认为你没有办法作弊
  • 你也可以建立一个登录系统,让人们只提交一次他们的答案
  • 遗憾的是,我认为您仍然可以作弊,因为如果您以前参加过测验,那么您可以知道(并记录)所有问题和可能的答案。如果您不顾一切地作弊,那么脚本可以根据显示的内容回答问题。我想使这种可能性稍微降低的唯一方法是将问题限制在问题的“池”中。如果您只显示 10 个问题并且有 30 个可能的问题,那么需要多次尝试进行测验才能获得所有问题、答案和正确答案。只是一个想法:)
  • 对于刚注册第二个帐户的人你会怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2018-02-11
  • 2022-10-15
  • 2017-04-20
  • 2013-12-24
相关资源
最近更新 更多