我使用cakephp 2和AuthComponent一起對我的web應用程序上的用戶進行身份驗證。至關重要的是,用戶不會自動註銷很長一段時間(至少24小時,更長或無限是最好的)。原因是我們在cakephp webapp中存儲了許多必須在幾秒鐘內可供當前登錄用戶使用的內容,而不會強制他輸入密碼。爲此,我已經設置Security.level
到low
,我還實施防止自動註銷cakephp
Configure::write('Session.timeout', 3000);
這應該給用戶一個很好的兩天了他被註銷了。然而,即使用戶已經在同一分鐘內處於活動狀態,用戶仍會不時註銷。我不知道它何時發生,以及如何重現它,但我想知道我是否可能錯過了某些東西,其他策略可能有助於解決我的問題。
作爲一個網絡服務器,我在Ubuntu 12.04上使用標準apache,沒有任何特殊的配置更改!
這是一個非常好的主意,我非常喜歡它,雖然使用標準的cakephp AuthComponent很難實現。兩個問題:散列應該多久?爲什麼在創建新會話時必須重新生成? – schneida
長度不是一個問題,最重要的是唯一性和僞造哈希的難度。 'md5($ userid)'會很糟糕。它使得哈希可預測。像'md5(microtime())'可能工作得很好。由於cookie存儲在客戶端,因此它們可以被第三方讀取。您可以爲用戶提供散列,並且無需用戶名或密碼即可登錄。如果哈希得到重新生成並且只允許使用一次,它會減少持久會話的安全風險。 – datasage
姆姆,所以如果一個壞的用戶將cookie複製到他的瀏覽器,他將能夠登錄到系統,並且因爲cookie被重新生成,真正的用戶將被註銷,因爲他的cookie現在不再有效。那麼我認爲這對我來說已經足夠了!非常感謝! – schneida