2012-02-24 111 views
3

我只是好奇。我看到了會話ID正在更新的方法。我知道會話的重要性,但我沒有得到的是爲什麼會話ID正在更新。SESSION ID:爲什麼需要更新?

在CodeIgniter(PHP框架)中,默認情況下會話ID每5分鐘更新一次。這是我們在這裏討論的安全問題嗎?只是想知道。感謝無論誰回答! :)

+0

防止['session-fixation'](http://en.wikipedia.org/wiki/Session_fixation)等等。 – Wrikken 2012-02-24 12:27:55

回答

2

它必須經常更新。

可以說你登錄到一些在線烘焙網站。當然你有一個獨特的會話ID會話。但是,如果不經常更新,有人可以使用一些XSS技巧來獲取會話ID,將您的會話ID插入到他的瀏覽器中,然後poof!他使用您的憑據登錄!

和服務器將永遠不會知道你不再是誰了,因爲他使用了你自己的會話ID,所以訪問這個站點的人是誰。

http://en.wikipedia.org/wiki/Session_hijacking

+0

這實際上是我一開始就在想的。感謝您的驗證。 :) – user979023 2012-02-29 16:06:45

0

的主要原因是爲了防止會話劫持。在這個維基百科article上列出了劫持會話的方法。到prevent session fixation,這篇文章很好。

通過刷新會話ID,任何被盜的會話ID對攻擊者來說都不會很有用。在您的示例中,竊取會話ID可能需要超過5分鐘的時間,在此之後,由於它已過期而無用。

通過竊取您的會話ID,攻擊者將承擔您的身份並執行您允許執行的任何操作。

0

重新生成會話ID的原因之一是防止會話劫持。

會話劫持是指黑客瞭解用戶的會話ID, 並用它來假裝他是該用戶。

有關更多詳細信息,請參見此PHP Security guide