簡體   English   中英

重新生成PHP會話ID和兩次刷新-瀏覽器未收到新的Cookie

[英]Regenerating PHP session ID and double refresh - browser not recieveing the new cookie

我已經用我自己的本機會話實現替換了有些故障的CodeIgniter會話庫。

兩者的行為相同,並且在一定時間后更改會話ID,並且都遇到相同的問題,出於這個問題的考慮,可以說會話每分鍾重新生成一次。

當用戶查看頁面並等待一分鍾時,在下一頁請求上,將重新生成會話ID。 但是,當用戶請求超時或他們“兩次刷新”頁面時,就會出現問題。 瀏覽器沒有收到新的cookie,因此將在下一個請求時開始新的會話。 因此,如果用戶在重新生成ID時點擊刷新,然后又快速連續點擊刷新,則他們將失去會話。

我知道更改會話ID是防止會話固定的好主意,但是有什么辦法可以解決此問題? 顯然,增加重新生成ID的時間將限制這種情況的發生,但似乎仍然很可能發生。

謝謝你的幫助!

  1. 在您的數據庫中添加一列“ previous_session_ID”
  2. 將當前會話ID移到“ previous_session_ID”中-然后生成新的會話ID並將其存儲在current_session_ID中
  3. 當用戶嘗試使用會話ID訪問您的頁面時-檢查當前ID和“ previous_session_ID”

問題已解決-他們現在可以進行“兩次刷新”並仍然訪問該頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM