Re: [請益] 檢查是否登入更安全的做法?

看板PHP作者 (Cindy Wang)時間14年前 (2011/08/28 20:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《inventorr (風之子)》之銘言: : 大家好 想請問一下 : 有些網頁需要登入後才可瀏覽 : 一般都是檢查 是否有設定 某個欄位(ex:password) 的cookie or session : 我個人目前是檢查 userid 跟 password 的cookie有沒有設定 : 不過現在忽然覺得 只檢查有沒有設定 是不是安全性有點弱呢 : 因為user可以自己隨便設定 : 但如果那些頁面都去開資料庫檢查 userid 與 password是否正確 卻又有點覺得不必要 : 不知道大家有沒有折衷的想法 (不用session的話) : 目前有想到對cookie加密 如果你想放的資料, 可以容許被 user 看到, 但是不容許 user 隨意修改的話. (例如說想記錄 user 本人的 userid, 代表他已經登入) 那麼你可以在 cookie 裡面類似這樣存: $sig = md5("secret_key.$userid"); setcookie("key_name", "$sig.$userid"); (其中這個「secret_key」是你自己想的一組密碼, 不可以外洩) 那麼, 你的系統在收到 $_COOKIE["key_name"] 之後, 可以藉由檢查這個 md5 計算有沒有一致. 如果你想要控制這一組 cookie 只有在一段時間內有效, 你可以把目前時間也存進去: $time = time(); $sig = md5("secret_key.$userid.$time"); setcookie("key_name", "$sig.$userid.$time"); 然後在收到的時候檢查這個時間有沒有距離現在時間太遠. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.242.246.249 ※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:15)
文章代碼(AID): #1EMYvn5e (PHP)
文章代碼(AID): #1EMYvn5e (PHP)