0

我正在创建一个基于网络的模拟试卷,它需要相当安全。

需求是 每个问题都可以尝试和回答一次。都是多项选择题一旦回答了一个问题并按下了提交,那么该会话必须过期,并且不能通过后退按钮或其他方式出现相同的问题。

在浏览器崩溃或系统崩溃的情况下,学生必须能够返回到上一个正在尝试但尚未回答和提交的问题。

在 Django 中实现它时采用的最佳策略是什么。一旦按下提交按钮,如何自动终止会话?您如何确保通过按下后退按钮,您无法访问尝试和回答的问题?

我尝试使用谷歌搜索,但我无法指出可以更好地指导我的资源。我看过 django session 文档,但我不确定我是否知道正确的方法。任何建议都可以提供帮助

4

1 回答 1

3

您如何确保通过按下后退按钮,您无法访问尝试和回答的问题?

重定向后获取。 http://en.wikipedia.org/wiki/Post/Redirect/Get

一旦按下提交按钮,如何自动终止会话?

真的没有意义。您不需要“杀死”会话。你需要做两件事。

  1. 更新该用户的数据库条目,以表明他们已经走了多远。

  2. 更新会话以表明他们已经走了多远。

不要试图“杀死”会话。保持会话信息(和基础数据库)正确。

终止会话只会迫使他们再次登录——这只是烦人的。此外,当他们再次登录时,数据库必须正确,否则他们将再次开始测试。因此,您只需要保持数据库和会话同步。

于 2010-08-17T19:26:37.847 回答