『葉狂人』的怕失憶筆記 Back-End

Session 儲存於 Cookie

今天我們來聊聊 PHP 的 Session

PHP Session 主要是以用戶端的 Cookie 來記錄一組 Hash,藉由這組 Hash 來查詢伺服端的 Session 是否存在

故一般來說 php.ini 設定檔案裡面建議使用 use only cookies,也就是用戶端必須開啟 Cookie 才可以使用 Session

但是並不代表這樣 Session 就安全無虞,用戶端 Cookie 內所記錄的 Hash 還是有可能讓有心人擷取冒用

建議可以搭配判斷用戶端的 IP 來檢查,如果 IP 不一樣的話就刪除整個 Session

session_start();

if (!isset($_SESSION['IP'])) {
	$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
}
else if ($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
	// 判斷 IP 非 Session 內記錄的 IP
	session_destroy();
	session_start();
}

盡可能搭配 http ssl 協定來增加傳輸的安全性

『葉狂人』的怕失憶筆記, author
「掌聲會停止,金牌也會褪色,在競賽裡獲得成功或失敗的經驗,才是最寶貴。」
「飛躍羚羊」紀政