强制执行客户端的时间限制

时间:2011-10-20 06:18:19

标签: language-agnostic

假设您有一个Web应用程序,并且您希望用户在特定时间限制内执行特定操作(例如,回答测验问题)。执行时间限制的最佳方法是什么?我可以想到两个,有利有弊:

  • 客户端执行:有效但容易被篡改
  • 服务器端强制执行:不能被篡改,但可能因服务器和客户端之间的延迟而导致问题

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我建议客户端执行,由服务器端健全性检查支持。您可以在服务器端允许延迟最多30秒或其他合理值,并在差异太大时声明客户端篡改。

当然,这将允许客户端篡改,但只允许你允许的一定时间。


在写下面的评论之后,我想到了以下内容:你不能相信客户端的javascript在页面加载时ping你的服务器以进行延迟计算 - 劫持它是微不足道的。但我不知道如何欺骗重定向响应。在开始测试之前,您可以采用时间戳并返回重定向响应。然后,您可以在重定向页面上计算服务器端的延迟。你甚至可以做几次以获得平均值。我不知道延迟提供重定向页面请求有多难,但它可能提供额外的保护层。此外,它可以让您提供更真实的延迟界限。