为一个用户创建了多个sessionID——这怎么可能呢


Multiple sessionIDs created for one user - how can this be?

我的一个(也是唯一一个)最终用户在注销时遇到了一些问题。我发现有多个PHP SessionID正在创建中,并且旧的SessionID超时导致注销。

问题是多个会话ID。我无法再现这是如何发生的。他们和我一样使用Firefox。我试着通过双击桌面图标,转到File -> Open New Window,右键单击应用程序中的链接并选择Open Link in New Window来打开新窗口。我所做的一切都会打开一个具有相同SessionID(在我的系统上)的新窗口。这是预期行为。

该用户是否有其他方法可以打开可能创建单独SessionID的窗口?我无法访问他们的系统,只能记录我的应用程序中的数据。

他很可能使用不同的firefox浏览器。

您可以使用PHP移动检测,在浏览器上为您提供所有信息

我想这会证实我的猜测。

firefox有多种变体,其中大多数都发送相同的标头,所以您不知道它们是否使用了两种不同的标头:

  1. firefox(原版)
  2. Tor项目
  3. 科莫多冰龙
  4. 便携式Firefox

我想不出同一个Session_ID cookie在同一个域中具有相同值的方法。

也许某个晦涩难懂的插件正在与浏览器磨合。

修复:尝试更改会话id的名称(php手册)

示例:

<?php
 session_name("My_new_session_id" );
 session_start();

通常要求将会话名称更改为不太明显的名称,如:"qwerty"

编辑:

安全会话管理的快速示例:链接

有关更多信息:OWasp会话管理备忘单

回到这个问题上来。问题原来是其中一个用户的工作流问题。这个问题通过教育得到了解决。