【发布时间】:2018-02-08 08:13:23
【问题描述】:
[免责声明:我不确定这种问题是否在这里被接受,因为它是关于已经部署的软件。请放心,我没有放弃任何机密信息。另外请告诉我我是否违反了 SO 中的任何规则,因此我可以立即将其删除]
我有一个正在运行的学习管理系统 Web 应用程序,我最近收到了一个关于按钮未显示的错误报告。经过调查,我已经证明用户没有按预期使用网络应用程序。在参加考试时,他打开了多个选项卡以利用通知他答案是否正确的功能。然后,他将使用此信息消除错误答案,并在另一个选项卡/窗口中提交所有正确答案。
我正在使用 Rails 4.2。有没有办法防止多标签浏览?我在想,如果用户登录并尝试打开 web 应用程序的新选项卡,他应该会看到“请使用一个选项卡”之类的内容,并且所有功能/超链接/按钮都被禁用。
这是我如何证明他使用多个标签的屏幕截图。请注意,有多个相同尝试的日志 # 因为当前实现允许保存学习会话并稍后恢复(这是被利用的部分)。打开多个选项卡会搜索最近的尝试会话并从那里继续。这也是大多数会话没有持续时间值的原因——用户只完成一个选项卡的学习会话(通过单击结束学习会话的按钮)。系统无法计算持续时间,因为其他会话没有结束时间戳。
-
这更像是一个应用程序滥用问题,而不是一个错误。
【问题讨论】:
-
你可以通过 websockets 做到这一点,如果用户打开了多个 websocket 连接,请禁用最新的。
-
JS sessionStorage 每个标签都是唯一的。您可以生成一个值并将其与每个页面请求一起传递给应用程序,以便它可以在不同时将用户注销。以下帖子可能对您有所帮助terrcin.io/2015/05/10/browser-tab-trackingstackoverflow.com/questions/11896160/…
标签: ruby-on-rails session