2012-10-03 213 views
2

當用戶創建一個帳戶時,他會從數據庫中獲得一個唯一且自動遞增的用戶標識。因此,第一個用戶的用戶標識爲1,創建的第二個用戶的用戶標識爲2,依此類推。我使用PHP會話來存儲登錄時的用戶ID,以便他們保持登錄狀態。閱讀了幾篇文章後,我發現你永遠不希望PHP會話像我一樣容易受到攻擊(這很容易因此,我的問題是,如果我使用基於其唯一用戶名的md5或blowfish爲每個用戶生成一個用戶標識,那麼這將使PHP會話保持安全嗎?保持PHP會話安全

+3

PHP會話生成自己的ID和你的一切。除此之外,你無需做任何事情。如果您只是將ID存儲在會話數據中,則沒有問題。如果你重寫默認的會話ID,那是一個不同的故事......並且是一個巨大的問題。 – Brad

+0

我正在將與該用戶關聯的數據庫抓取的id存儲到會話中。所以'$ session ['user_id']'引用從數據庫中抓取的用戶標識。 – jason328

+0

然後,你的實現沒有問題。 – Brad

回答

1

一個好的方法將總是在登錄屏幕,並立即登錄後強制使用隨機數

session_start(); 
$newsessid = somerandomnumberfunction(); 
session_id($newsessid); 

你也可以使用session_regenerate_id()函數生成一個NE產生一個新的會話ID w^ID

session_start(); 
session_regenerate_id(); 

讀取良好

PHP Session Security

PHP Security Guide: Sessions

+1

雖然這不是直接回答我的問題,從那以後它已經在評論中得到解決,我會給你信用的答案。另外,我認爲我的問題有點模棱兩可,所以如果你按照我認爲你閱讀的方式閱讀,你的回答就會有意義。 – jason328