我知道Session用於跟蹤客戶端的操作,或者簡單地就像登錄,如果有會話,顯示內容,如果不是,那麼他是Guest,我們將存儲爲以及本次會議中的價值觀或屬性。應該在會話中存儲哪些屬性
到現在爲止,我總是將用戶ID存儲在會話中,作爲一個主要屬性,可以幫助我在其他頁面中識別他。
$_SESSION['userID'] = $userID; //example: 100, 101, 102...
我可以檢索這個ID,並根據該ID從數據庫中獲取數據。
$userID = $_SESSION['userID'];
$query = "SELECT * FROM posts WHERE user_id = ".$userID;
這是使用Session的正確方法嗎?該ID不應該存儲在會話中?任何安全風險?如果不應該存儲,那麼我如何識別用戶?
只在會話中存儲'userID'很好。當您開始在會話中存儲密碼和其他敏感信息時會出現問題。 'userID'本身不是敏感信息。 – 2013-03-15 13:48:21
也許你可以使用唯一的'訪問令牌'的東西,這隻會對註冊和登錄用戶有效。如果您發現有效的訪問令牌,請獲取ID和內容。這樣,即使訪問令牌被劫持,人們可能也無法猜測它產生的方式。 – SachinGutte 2013-03-15 13:49:06
只有userId,您無法授權任何人。它只是猜測任何ID,如果你打一個,你登錄... – 2013-03-15 13:49:57