在閱讀this和所有相關的問題後,我仍然有一個問題。
我試圖用「記住我」功能來實現登錄表單。早些時候,我一直在使用一個cookie(只包含一個哈希用戶名,沒有密碼)來驗證用戶是否已經登錄,但我讀過這不太安全,因此我決定只使用會話。
在開始的時候一切正常需要:PHP:一種安全的方式來保持登錄信息
$expires=isset($_POST['rememberMe'])? time()+(60*60*24*14): 0;
session_set_cookie_params($expires, "/", ".example.com", false, true);
session_start();
但我希望他們能如果「記住我」設置爲直接打開頁面(如http://example.com/blog)。很明顯,我做了一個session_start()
並重定向到登錄頁面,如果用戶沒有登錄。但是,在這一點上,我不能正確地做session_set_cookie_params()
,因爲我不知道他/她是否早先設置了「記住我」或不。如果我仍然把它放入cookie中,它會安全嗎?或者我應該修改我的數據庫來做到這一點?
還有一件事:安全會話數據(沒有密碼,再次!),如用戶名,權限等兩週?
所以你認爲在cookie中存儲哈希用戶名是安全的,對嗎? –
我編輯了系統的簡要說明。只有散列用戶名是非常糟糕的,因爲散列總是相同的。你應該生成一個隨機密鑰。 – xrash