繁体   English   中英

如何防止用户在多个浏览器选项卡中打开应用程序?

[英]How to prevent user from opening the application in multiple browser tabs?

我们正在寻找一种方法来防止用户在同一浏览器下的多个选项卡中打开应用程序。

这个想法是插入其中一个查询过滤器,然后访问 session 可能,并在继续之前检查是否有已打开的选项卡。

我查看了httpSessionHttpRequest的东西,但没有发现任何帮助。

java 端是否有任何功能可以知道该应用程序是否已在另一个选项卡中打开?

谢谢,

使用 Javascript 可以实现此目的。

查看过去的问题/答案

但是,如果...

  • 您的用户只需关闭 Javascript。
  • 他们从多个浏览器加载网站。
  • 他们在同一浏览器上以正常模式和隐身模式加载网站。
  • 他们从多种设备(笔记本电脑和手机)加载网站。

您最终会使用多种功能来尝试防止这种情况发生(但这是一场失败的战斗,并且有无数种方法可以绕过它)。

如果您有登录名,您将需要跟踪过去的登录名并提供在新登录名时断开/使其他登录名无效。 (这将有助于多个浏览器和设备的尝试)。 如果尝试使用旧会话,则服务器端的授权层将使旧会话无效。

如果您在同一个浏览器中有多个选项卡,那么旧问题/答案中的 javascript 技术可能是最好的。

也有人试图使用 websocket 作为单点通信,但我不明白它是如何工作的,但你会在研究中遇到它。

从服务器的角度来看,请求来自相同的浏览器选项卡、不同的选项卡、不同的浏览器或不同的设备都没有关系。 两个选项卡可以共享同一个 session。 服务器(或 servlet)无法知道请求是来自选项卡 A 还是选项卡 B。选项卡是浏览器功能,它不会在 HTTP header 中发送。

如果您详细说明为什么要这样做,我可能会给出更好的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM