时间检查:服务器端还是客户端?

时间:2014-05-09 15:32:44

标签: javascript client-server

我正在开发一个类似于应用程序的测验 此应用程序跟踪用户回答每个问题所花费的时间。

我应该计算时间服务器端还是客户端?

我想出了这个优点/缺点:

服务器端:
专业人士:用户无法“作弊”
缺点:用户延迟会严重影响

客户方:
专业人士:时间跟踪更精确 缺点:半专家用户可以使用一些javascript来“欺骗”

通过设计,改变背后的逻辑(即:计算每个答案的平均时间)将破坏应用程序的属性。

延迟可能是一个问题,因为5-10秒的变化可以改变用户的最终得分(将其乘以平均50个答案);这个应用程序可以在智能手机和平板电脑上运行,所以我预计会有很高的网络延迟。

我认为这可能是一个普遍的html5 / javascript开发问题,但对于谁在问,我使用node.js作为服务器。

2 个答案:

答案 0 :(得分:0)

如果测验应用程序不敏感,那么只需使用客户端的时间。

如果时间非常敏感,我会同时使用服务器和客户端的时间。

如果客户端的时间少于服务器的时间(比如说5秒),则可以安全地假设客户端在作弊。


另外,我应该警告你,如果问题的答案是不变的,那么创建一个自动填充值的脚本就很容易了。

EG。 document.getElementById("QuestionOne").value="TheCorrectAnswer";void(0);

答案 1 :(得分:0)

您可以使用客户端时间,并将其与服务器端时间进行比较,即使用两者。它不需要太多代码,但是安全。