2009-05-20 51 views
1

我在寫一個應用程序時使用(服務器端,而不是cookie)會話,如果用戶沒有獲得服務器的訪問權限,我可以信任$ _SESSION變量還是應該驗證每個頁面加載的內容?


注:
我想查詢的數量限制到我的數據庫,目前我正在驗證對每一個頁面加載的數據,和我,以爲我也許可以消除查詢,但我想100%肯定。ServerSide會話安全嗎?

回答

3

是的,你可以安全地將它存儲在會話中。您應該確保驗證方法是安全的。 (您在存儲在會話中之前使用的方法)。

+0

順便說一句,它取決於你存儲在會話中的哪些信息。我們將整個用戶對象存儲在會話中。這意味着我們需要一種「刷新」方法來同步會話/數據庫數據,例如當用戶更新其信息時。 – Ropstah 2009-05-20 09:55:53

+0

這正是我目前正在驗證用戶對象的數據。 – UnkwnTech 2009-05-20 10:31:19

2

你只需要確保會話存儲在安全的地方。默認情況下,會話存儲在/ tmp/linux等某處。如果用戶可以訪問你的服務器,他們可以編輯會話變量。

您應該考慮將會話保存到數據庫,和/或向會話添加散列計算(md5 +祕密種子)驗證,並始終檢查會話變量是否未針對該散列進行修改。