时间检查:服务器端或客户端

Timechecking: Server side or Client side?

本文关键字:客户端 服务器端 检查 时间      更新时间:2023-09-26

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

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

我想出了这个利弊:

服务器端:
优点:用户不能"作弊"
缺点:用户延迟会严重影响

客户端:
优点:时间跟踪更精确
缺点:一个半专业的用户可以使用一些javascript来"欺骗"

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

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

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

如果测试应用程序不敏感,则使用客户端的时间。

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

如果客户端的时间比服务器的时间短很多(比如5秒),那么可以认为客户端在作弊。


另外,我应该警告你,如果问题的答案是恒定的,那么创建一个脚本来自动填充这些值是很容易的。

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

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