由於 Cookie 是存在 Client 端
所以重要資訊盡量不要用 Cookie 存會比較好
而 Session 跟 Cookie 能夠一起搭配是最好不過的
雖然存放在 /tmp 的 Session files 在重開機後會被自動刪除
但避免 session files 過多,及安全性的議題
所以還是在 session_regenerate_id() 的參數設為 TRUE(預設是 FALSE)會比較好
以下就來舉例介紹:
session_start();
$_SESSION['data'] = time();
session_regenerate_id();
?>
執行了上述程式後到 /tmp 資料夾會看到 sess_82c6980017e100277a63983142fd454c
sess_a4bab88e6dfa6e900ade21e3fbd27a53
再執行一次你會看見 sess_984c5230acca90b5a75eddb89bb48354
sess_a4bab88e6dfa6e900ade21e3fbd27a53
sess_82c6980017e100277a63983142fd454c
再再一次你會看見 sess_984c5230acca90b5a75eddb89bb48354
sess_a4bab88e6dfa6e900ade21e3fbd27a53
sess_82c6980017e100277a63983142fd454c
sess_dd88c05b724d80b30c90309847f2e919
上述每執行一次就會增加一個 Session file,不是因為有另外一個人登入喔!如果要 php 自動刪除那些無效的 Session files,可以照個下面這樣做:
session_start();
$_SESSION['data'] = time();
session_regenerate_id(true);
?>
Reference:PHP Security Tip #7
沒有留言:
張貼留言