【问题标题】:Timechecking: Server side or Client side?时间检查:服务器端还是客户端?
【发布时间】:2014-05-09 15:32:43
【问题描述】:

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

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

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

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

客户端:
优点:时间跟踪更精确
缺点:半专家用户可以使用一些 javascript 来“作弊”

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

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

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

【问题讨论】:

    标签: javascript client-server


    【解决方案1】:

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

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

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


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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-29
        • 1970-01-01
        • 2015-11-04
        • 2018-06-06
        • 2020-07-18
        • 2011-04-30
        相关资源
        最近更新 更多