2012-09-03 167 views
0

我對PHP開發很新。到目前爲止,我存儲在cookie中一個哈希(用戶名+密碼),以保持用戶登錄。現在我發現了PHP會話。在會話PHP中存儲用戶名?

當然有人可以修改存儲的值,而無需訪問服務器嗎?

$_SESSION['username'] = '[email protected]'; 
+0

我想只有當你的代碼允許代碼運行,或者你打開了全局變量。 – BugFinder

+0

是的,可以有一些javascripts可以得到所有的cookies和會話數據,並可以修改它 – Wearybands

回答

6

沒有,會話不能直接修改而不服務器訪問(除非你留下漏洞的黑客攻擊)

會議上被映射到通過cookie用戶服務器(RAM或文件系統)的陣列。用戶只能在Cookie中獲得會話ID。當用戶返回時,PHP獲取該會話ID並恢復會話。

+3

服務器數據存儲在文件系統中,而不是(一定)在RAM中 –

2

客戶端永遠不會更改變量$_SESSION。我還建議您不要將密碼保存在$_SESSION以內,而在$_COOKIE以內。您可以檢查用戶名和密碼是正確的,那麼你就可以創建$_SESSION['userID']$_SESSION['user'],然後你只檢查是否會話已建立通過與isset函數這樣創建一個if語句:

if(isset($_SESSION['user'])){ 
    // do something... 
}