2013-02-19 79 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

盤旋迴到這個問題。問題原來是其中一個用戶的工作流程問題。教育解決了這個問題。

相關問題