1

在我的应用程序中,我需要阻止用户在两个不同的选项卡/窗口中打开相同的链接(链接是动态的而不是静态的),因为链接生成的 id 基础我不允许用户在不同的选项卡中打开相同的 id 信息。

我该如何预防?

4

4 回答 4

0

我认为您最接近的是:

  • 仅向登录用户提供信息
  • 为每个页面生成一个随机令牌(并跟踪哪些令牌与哪些页面相关联)
  • 使用 Ajax 每n秒 ping 一次服务器,在请求中传递令牌
  • 如果服务器响应“已在n 次 3秒内收到来自同一用户的同一页面的不同令牌”或未收到响应,则document.body.innerHTML = ''

当然,这对用户来说是一件可怕的事情,并且可以通过在调试工具中破解 JS 或仅通过复制/粘贴或截取信息的屏幕截图来轻松击败。

Web 浏览器的设计目的不是为了限制用户使用他们获取的信息可以下载的内容

于 2012-05-10T08:50:33.557 回答
0

您可以使用本地存储来标记在加载活动中打开的页面,并在加载检查中卸载时重置标记检查是否设置了标记,然后限制其他允许。

于 2014-12-30T05:27:31.683 回答
0

如果您使用 window.open() 为窗口命名,它不会打开多个窗口/选项卡。

例子:

window.open("http://www.google.com", "myWindow");

如果你有一个 id 来区分窗口,代码可能是这样的:

window.open("url_for_id", "window" + id);
于 2012-05-10T08:47:53.273 回答
0

我不认为你能做到这一点。但是您可以这样做每次用户查看页面时生成一个令牌并将其存储到会话以及页面中您可以防止用户从两个选项卡提交数据

于 2012-05-10T08:49:01.233 回答