我正在创建一个基于网络的模拟试卷,需要相当安全。
需求是 每个问题都可以尝试和回答一次。 所有都是多个选择题 一旦问题得到解答并按下提交,那么该会话必须到期,并且不能通过后退按钮或其他方式显示相同的问题。
如果浏览器崩溃或系统崩溃,学生必须能够回到最后一个正在尝试的问题,但尚未回答并提交。
在Django中实现它时采用的最佳策略是什么?按下提交按钮后,如何自动终止会话?如何确保通过按后退按钮,您无法访问尝试和回答的问题?
我尝试使用谷歌搜索,但我无法指出能够更好地指导我的资源。我见过django会话文档,但我不确定我是否知道正确的方法。任何建议都可以提供帮助
答案 0 :(得分:3)
您如何确保通过按后退按钮,您无法访问尝试和回答的问题?
后重定向-获取。 http://en.wikipedia.org/wiki/Post/Redirect/Get
按下提交按钮后,如何自动终止会话?
没有意义。您不需要“杀死”会话。你需要做两件事。
更新此用户的数据库条目,以指明他们已经走了多远。
更新会话以表明他们已经走了多远。
不要试图“杀死”会话。保持会话信息(和底层数据库)正确。
杀死会话只会迫使他们再次登录 - 这只是令人讨厌。此外,当他们再次登录时,数据库必须正确或者他们将再次开始测试。因此,您只需要保持数据库和会话同步。