这个网站如何知道我正在打开另一个标签?

时间:2012-11-19 13:57:11

标签: html session browser web

当我登录我所在大学的“学习系统”网站时,我发现无法打开同一网站打开的新标签页。当我这样做时,网站知道并显示以下消息?

Session already running?

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

我使用私人计算机访问该网站,并且正在访问的网站不在本地网络上,而是通过互联网访问。因此,没有可能导致此问题的内部监控软件。我正在使用Google Chrome 24 Beta for Mac。

2 个答案:

答案 0 :(得分:4)

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

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

当您的下一个请求未提交预期的第二个ID时的情况为:

  1. 您点击后退按钮(您将发送旧页面ID)
  2. 你打开一个新标签(这取决于浏览器,但如果它打开了 您在原始标签中已经在同一页面,它将发送当前页面 id,而不是服务器期望的下一页id)
  3. 无论哪种方式,您都会发送一个服务器不期望的页面ID请求,并且可以最好地猜测您的操作。

答案 1 :(得分:0)

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

这是一个很好的用户体验。