我正在开发一个类似于应用程序的测验 此应用程序跟踪用户回答每个问题所花费的时间。
我应该计算时间服务器端还是客户端?
我想出了这个优点/缺点:
服务器端:
专业人士:用户无法“作弊”
缺点:用户延迟会严重影响
客户方:
专业人士:时间跟踪更精确
缺点:半专家用户可以使用一些javascript来“欺骗”
通过设计,改变背后的逻辑(即:计算每个答案的平均时间)将破坏应用程序的属性。
延迟可能是一个问题,因为5-10秒的变化可以改变用户的最终得分(将其乘以平均50个答案);这个应用程序可以在智能手机和平板电脑上运行,所以我预计会有很高的网络延迟。
我认为这可能是一个普遍的html5 / javascript开发问题,但对于谁在问,我使用node.js作为服务器。
答案 0 :(得分:0)
如果测验应用程序不敏感,那么只需使用客户端的时间。
如果时间非常敏感,我会同时使用服务器和客户端的时间。
如果客户端的时间少于服务器的时间(比如说5秒),则可以安全地假设客户端在作弊。
另外,我应该警告你,如果问题的答案是不变的,那么创建一个自动填充值的脚本就很容易了。
EG。
document.getElementById("QuestionOne").value="TheCorrectAnswer";void(0)
;
答案 1 :(得分:0)
您可以使用客户端时间,并将其与服务器端时间进行比较,即使用两者。它不需要太多代码,但是安全。