2012-11-19 27 views
10

当我登录到我的大学的一个“学习系统”网站时,我发现我无法打开一个新的选项卡,并打开了相同的网站。当我这样做时,该网站知道并显示以下消息?本网站如何知道我正在打开另一个选项卡?

Session already running?

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

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

+2

你如何打开一个新标签?有机会他们检查引用者,当它看到你没有一个,或者你从一个页面发起并着陆到另一个不在“序列”中的页面时,它会反弹一个错误。它也可以使用会话变量/ IP组合来跟踪您正在查看的页面。 –

+0

当您打开新选项卡或在新选项卡中执行某些操作后,您是否看到此消息?如果您通过“在新标签中打开链接”选项打开标签,您会看到它吗? –

+0

我一打开一个新标签就会看到它。 – element119

回答

4

做到这一点的一种方法是通过cookie和id。首先,您登录到该网站并在那里开会。这是使用cookie进行管理的;无论何时访问网站上的某个页面,浏览器都会发送一个通常包含某种ID的cookie。这样服务器就可以识别来自你的任何请求,这真的来自你。因此,在这种情况下,您的原始标签和新标签都会发送相同的Cookie。其次,它还可以向网站上提交的任何链接或表单添加另一个不同的ID(称为页面ID)。因此,页面上的表单可能包含ID 1234,并且任何链接也会包含该ID。您访问的每个新页面都可能包含新的ID。因此,无论何时,该网站都知道您的浏览器发出的下一个请求(由Cookie标识)也应包含此其他ID。如果你以正常的方式浏览网站,点击链接,提交表单,这将是真实的,一切都会很好。

情况下,当你的下一个请求将不会提交的预期,第二个ID是:

  1. 你打后退按钮(你会被发送旧的页面ID)
  2. 你打开一个新标签(这取决于浏览器,但如果它打开你已经在原有标签的 页面一样,它会发送当前 页ID,而不是下一个页面ID,该服务器期望)

无论是方式,你发送一个寻求服务器没有预期的页面ID,它可以对你做的事情做出最好的猜测。

+1

据我所知,Chrome在选项卡之间共享会话/ cookie。 –

相关问题