我對PHP開發很新。到目前爲止,我存儲在cookie中一個哈希(用戶名+密碼),以保持用戶登錄。現在我發現了PHP會話。在會話PHP中存儲用戶名?
當然有人可以修改存儲的值,而無需訪問服務器嗎?
$_SESSION['username'] = '[email protected]';
我對PHP開發很新。到目前爲止,我存儲在cookie中一個哈希(用戶名+密碼),以保持用戶登錄。現在我發現了PHP會話。在會話PHP中存儲用戶名?
當然有人可以修改存儲的值,而無需訪問服務器嗎?
$_SESSION['username'] = '[email protected]';
沒有,會話不能直接修改而不服務器訪問(除非你留下漏洞的黑客攻擊)
會議上被映射到通過cookie用戶服務器(RAM或文件系統)的陣列。用戶只能在Cookie中獲得會話ID。當用戶返回時,PHP獲取該會話ID並恢復會話。
服務器數據存儲在文件系統中,而不是(一定)在RAM中 –
客戶端永遠不會更改變量$_SESSION
。我還建議您不要將密碼保存在$_SESSION
以內,而在$_COOKIE
以內。您可以檢查用戶名和密碼是正確的,那麼你就可以創建$_SESSION['userID']
或$_SESSION['user']
,然後你只檢查是否會話已建立通過與isset函數這樣創建一個if語句:
if(isset($_SESSION['user'])){
// do something...
}
我想只有當你的代碼允許代碼運行,或者你打開了全局變量。 – BugFinder
是的,可以有一些javascripts可以得到所有的cookies和會話數據,並可以修改它 – Wearybands