我想使用MVC 2开发一个测验站点。 单个页面只显示一个问题。 考生将选择或输入答案,然后按“下一步”按钮继续。
我在服务器端的业务逻辑将记录两个连续页面请求之间经过的时间。不得以任何方式篡改这些时间戳,以制作可靠的诊断报告。
处理此问题的最佳方法是什么?
答案 0 :(得分:1)
好吧,我实际上不记录经过的时间 - 我会记录时间本身(以UTC为单位)。你可以很容易地从那个页面到页面之间的时间,但你不能走另一条路。您可能会发现以后能够检查特定会话,过滤它们何时发生是有用的(例如,如果某人声称在特定时间出现问题,您可以检查它们是否确实在系统上)。
您只需要某种会话/用户标识符来跟踪用户的会话,您只需记录当前时间即可。时间将与服务器系统时钟和数据库本身一样防篡改。
答案 1 :(得分:1)
您可以在服务器上使用会话状态。但是,如果用户打开多个标签/浏览器等,您将不得不考虑会发生什么。
或者,您可以将编码的时间戳发送到客户端。由于它们是编码的客户端将无法修改它们。
答案 2 :(得分:0)
记录时间并存储在Session中。因此,任何客户端数据篡改都无法实现。