【问题标题】:How to detect multiple browser tab on same java application如何在同一个java应用程序上检测多个浏览器选项卡
【发布时间】:2016-04-15 02:54:22
【问题描述】:

早安,

例如,主要在银行网站中。用户登录网站后,网站通常会阻止用户右键单击并在新标签页中打开。

用户仍然可以复制 url 并将其粘贴到新选项卡中并浏览它。我看到如果用户这样做,一些银行网站会自动将用户注销。

想知道系统如何检测用户在新标签页中浏览相同的应用程序。 (我正在使用 Stripes 框架做 Java Web 应用程序)

请多多指教。

【问题讨论】:

  • 不要那样做。这是愚蠢和毫无意义的。
  • @SLaks,是的,我知道这很愚蠢,我知道开发人员不会这样做。但我们不能告诉用户不要这样做。
  • @rev_dihazum,这篇文章是关于禁用右键单击,查看页面源代码。我的是检测同一浏览器上的重复标签。
  • @PanadolChong ,我提供了一种解决重复选项卡的方法。您可以看到。

标签: java session browser right-click stripes


【解决方案1】:

HTTP 是一种无状态协议,会话和 cookie 无法帮助您实现目标。 我建议你尝试使用 websocket 或其他方式与客户端进行彗星式通信。

【讨论】:

    【解决方案2】:

    要禁用重复选项卡,一种方法是这样的:

    • 对于来自登录页面的有效凭据,添加隐藏的<input name="tabId"> 字段,其中包含选项卡 ID(在服务器端生成的随机数)到主页。
    • 登录后,为每个请求发送隐藏的 <input name="tabId"> 字段值作为当前选项卡 ID。
    • 每次请求来,你必须找到隐藏的<input name="tabId">字段的值,如果该值为null/blank,则将其重定向到登录页面。

    【讨论】:

    • 嗨,我很难改变现有的设计。如果我将通信类型更改为 AJAX,它会影响整个系统。
    • @PanadolChong,我用另一种方法修改了我的答案。看到这个并反馈给我。
    • 我还是不太明白。第一步和第二步我可以得到它。在第三步,你的意思是如果我在另一个选项卡中浏览相同的 url,它会发送带有空白选项卡 id 值的请求?
    • @PanadolChong 第三点:对于每个请求,您必须找到<input name="tabId"> 的值是否为空?如果为空,则将其视为新的 TAB 请求
    猜你喜欢
    • 2016-08-17
    • 1970-01-01
    • 2011-12-09
    • 2021-07-28
    • 1970-01-01
    • 2013-09-11
    • 2011-06-25
    • 1970-01-01
    • 2018-07-14
    相关资源
    最近更新 更多