2013-02-19 85 views
0

我的最终用户的一个(也是唯一一个)具有被登出一些问题。我发现有多个PHP SessionID正在创建,并且旧的SessionIDs会超时导致注销。为一个用户创建多个sessionID - 这怎么可能?

的问题是多个会话ID。我无法重现这是怎么发生的。他们使用的是Firefox,因为我也是。我已经尝试通过双击桌面图标打开新的窗口,去File -> Open New Window,并用鼠标右键单击该应用程序的链接并选择Open Link in New Window。我做的每件事都会打开一个具有相同SessionID的新窗口(在我的系统上)。这是预期的行为。

有另一种方式这个用户可以打开,可能创建一个单独的SessionID窗口?我无法访问他们的系统,只能从我的应用程序中记录数据。

+0

在代码中检查session_start()之前的输出/空白。 – 2013-02-19 23:05:11

+2

他们可能会禁用Cookie,因此会阻止他们保持会话。 – 2013-02-19 23:05:40

+2

@John - 只有一个用户遇到这个问题。这不是为我发生的。如果有空白,所有用户都会遇到问题。 – 2013-02-19 23:06:08

回答

0

他是最有可能使用不同的Firefox浏览器。

您可以使用PHP mobile detect给你的浏览器

我认为这将证实了我的猜测所有的信息。

有火狐的多个变体,最ofthen他们发送相同的标题,所以你不会知道,如果他们使用的是2对目前存在的那些:

  1. firefox(原件)
  2. Tor project
  3. Comodo Ice Dragon
  4. portable Firefox
  5. ...

我想不出一个方法,即相同的Session_ID Cookie对同一个域具有相同的值。

也许有些模糊的插件与浏览器回火。

FIX: 试着改变你的会话ID的名称(php manual)

为例:

<?php 

session_name("My_new_session_id"); 
session_start(); 

它一般要求会话名称更改为一个不太明显的名称,如: “QWERTY”

编辑:

安全会话管理的一个简单的例子:link

欲了解更多信息:OWasp Session Management Cheat Sheet

+0

谢谢 - 最终用户在技术上不成熟。我会确认这没有发生。 – 2013-02-19 23:34:32

0

盘旋回到这个问题。问题原来是其中一个用户的工作流程问题。教育解决了这个问题。

相关问题