Html 此站点如何知道我正在打开另一个选项卡?

Html 此站点如何知道我正在打开另一个选项卡?,html,session,browser,web,Html,Session,Browser,Web,当我登录到一个网站,这是我所在大学的一个“学习系统”,我发现我无法打开同一个网站的新标签。当我这样做的时候,不知怎么的,网站会意识到并显示以下消息 网站究竟如何知道我在电脑上打开了哪些标签?据我所知,前端代码不应该访问我的私人浏览器信息。该站点可以使用哪些可访问的信息来确定我已经打开了另一个选项卡 我正在使用一台私人计算机访问该网站,而正在访问的网站不在本地网络上,而是通过internet访问的。因此,没有可能导致这种情况的内部监控软件。我正在为Mac使用谷歌Chrome 24测试版。一种方法

当我登录到一个网站,这是我所在大学的一个“学习系统”,我发现我无法打开同一个网站的新标签。当我这样做的时候,不知怎么的,网站会意识到并显示以下消息

网站究竟如何知道我在电脑上打开了哪些标签?据我所知,前端代码不应该访问我的私人浏览器信息。该站点可以使用哪些可访问的信息来确定我已经打开了另一个选项卡


我正在使用一台私人计算机访问该网站,而正在访问的网站不在本地网络上,而是通过internet访问的。因此,没有可能导致这种情况的内部监控软件。我正在为Mac使用谷歌Chrome 24测试版。

一种方法是通过cookies和ID。首先,您登录到该站点并在那里进行会话。这是使用cookies管理的;每当你访问网站上的某个页面时,你的浏览器都会发送一个cookie,该cookie通常包含某种id。这样服务器就可以识别来自你的任何请求,实际上是来自你的。因此,在这种情况下,原始选项卡和新选项卡都将发送相同的cookie

其次,它还可以向您在站点上提交的任何链接或表单添加另一个不同的id(称为页面id)。因此,页面上的表单可能包含id 1234,任何链接也将包含该id。您访问的每个新页面都可能包含一个新id。因此,在任何时候,网站都知道来自浏览器的下一个请求(由cookies标识)也应包含该另一个id。如果您以正常方式浏览网站,请单击链接,提交表格,这将是真实的,一切都将是好的

您的下一个请求无法提交预期的第二个id的情况如下:

  • 您点击后退按钮(您将发送一个旧的页面id)
  • 打开一个新选项卡(这取决于浏览器,但如果它打开 您已经在原始选项卡中的同一页上,它将发送当前页 id,而不是服务器期望的下一页id)

  • 无论哪种方式,您都会发送一个带有服务器不期望的页面id的请求,并且它可以对您所做的事情做出最佳猜测。

    他们在访问其网站时跟踪您的鼠标光标移动。这是吸引游客注意力的好方法。当您移动鼠标和希望关闭时,它们会以编程方式放置一些查询


    很好的用户体验。

    如何打开新标签?很有可能他们正在检查引用者,当它看到你没有一个引用者,或者你从一个页面发起并登录到另一个不符合“顺序”的页面时,它会反弹错误。它还可以使用会话变量/ip组合来跟踪您正在查看的页面。是否在打开新选项卡时或在新选项卡中执行某些操作后立即看到此消息?如果您通过“在新选项卡中打开链接”选项打开选项卡,您会看到它吗?我会在打开新选项卡后立即看到它。据我所知-Chrome在选项卡之间共享会话/cookies。欢迎使用SO!我知道你指的是什么技术,但我不确定这是否是一个好的用户体验——我最大的烦恼之一是当我把鼠标移到窗口外,得到一个巨大的订阅提议,或者“但是等待”试图诱使我留在网站上。不过,这与问题无关——与本文更相关的是,网站如何检测使用键盘快捷键打开的选项卡?