14

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

会话已经运行?

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

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

4

2 回答 2

5

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

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

您的下一个请求不会提交预期的第二个 id 的情况是:

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

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

于 2012-11-19T14:11:04.467 回答
0

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

这是很好的用户体验。

于 2020-09-18T19:53:16.653 回答