2010-09-25 63 views
0

將用戶角色存儲在Codeigniter會話中安全嗎?Codeigniter:在會話中存儲用戶角色

該角色將決定用戶將具有什麼功能;這是一個管理員,普通用戶或高級用戶。

我也將會話存儲在數據庫中以增加安全性,但我想知道是否應該使用替代路由,例如查詢用戶的ID並檢查其角色,但我相信只需要一步進一步認證。

請指教。

回答

1

是的,這是安全的。如果它存儲在數據庫中,用戶幾乎無法做到篡改數據。

0

將會話中的角色存儲在會話中以避免隨時查詢它應該沒問題,如果它大多是靜態的。

只要考慮在會話有效的情況下編輯用戶的角色(登錄或未過期)時在邊緣情況下應如何處理。如果會話對他無效,那麼他必須重新登錄?或者讓您的應用程序知道角色現在已經陳舊,應該從數據庫中刷新?

+0

我在Codeigniter中使用Tank Auth。我不確定我的應用程序如何使會話失效,但它確實使用了數據庫,所以馬修說,我應該是安全的,我真的很希望。 – Anraiki 2010-09-25 15:30:37

+0

@Araraiki我的意思是:說用戶X登錄,你改變他的角色。會話處理程序如何知道從數據庫刷新以獲取更改的角色?也許你需要一種方法來使該用戶的會話無效,以便他可以重新登錄,或者知道從數據庫中獲取新角色的方法 – Fanis 2010-09-25 15:58:04

+0

我認爲你已經過度複雜化了。如果他們想要將角色從'user'更改爲'admin',則可以有一個類似$ this-> session-> set_userdata('role','admin')的函數。您還需要將其保存到相應的用戶行,以便他們在不同的時間登錄時能夠正確反映。 – Matthew 2010-09-25 18:04:43