PHP 板


LINE

看板 PHP  RSS
※ 引述《thinklu (包子)》之銘言: : 不好意思~我是PHP的初學者 : 我正在做login的東西~ : 在一開始我用: : session_set_cookie_params(60); : session_start(); : 來設定timeout時間 : 接著我做了: : $_SESSION['un'] = $username; : 來指派值~ : 之後log in成功~我跳到了另一個php檔~ : 在一進去我就做了: : if ( ! isset( $_SESSION['un'] ) ) { : echo '<meta http-equiv=REFRESH CONTENT=3;url=login.php>'; : } : 來確定使用者有log in~不然我就把他redirect出去 : 不好意思講一堆~現在問題來了~ : 我想做: : if(/*timeout happens*/) { : echo '<meta http-equiv=REFRESH CONTENT=3;url=login.php>'; : } : 可是我不知道/*timeout happens*/ 應該要寫什麼~ : 可以請各位大大幫忙嗎? : 我有先找過一堆資料了~可是沒有找到我想要的~ : 所以來這邊問問看各位~肛溫~ 既然有問到「一般常見的Session登入怎麼做」 就借標題來分享(兼請教)一下 據我所知的常見登入/登出作法 是在每個需要帳號權限的頁頭都引入類似下面的檢查檔 <?php session_start(); if (empty($_SESSION['Login'])){ header('Location:Login.php'); die(); } ?> 在登入頁面登入成功時$_SESSION['Login']='使用者登入的ID'; 登出時則unset($_SESSION['Login']); 以上是最簡單的作法 但是最近需要用比較安全/保密的帳號登入管理 最好能夠掌控每個帳號的登入時間、從哪登入、同一時間只能由一臺電腦登入、 每次登入/取代時都會留下紀錄、視使用者idle時間而定的timeout機制 目前的想法如下 同樣在每個需權限頁面檔頭引入檢查檔 但是不使用Session,而是使用expire time為0的Cookie為紀錄 (在瀏覽器關掉後才會自動刪除的Cookie) 每次使用者登入成功後,程式自動產生一段random code, 作為login token給使用者的瀏覽器cookie紀錄 同時間,php會將此token碼的產生時間與登入IP存入一個token資料表中 該資料表有以下欄位 token(隨機字串),LoginTime(登入時間),ChangeTime(此token的最新活動時間), LogOut(登出與否+登出方式),IP(此token所使用的IP) 檢查頁面差不多是以下結構 <?php if (empty($_COOKIE['token'])){ //沒有授權token,轉向登入頁面 header('Location:Login.php'); //若登入成功時,該帳號擁有其他未登出的token,則將其kick out die(); } else{ $TokenData=.... //從資料表中取出該Token的資料 if (不存在此token || token之IP與瀏覽者不符){ /* 將此瀏覽者IP與嘗試時間存入錯誤資料表內 若短時間內某一IP嘗試錯誤過多,則拒絕此IP連線 */ die(); } elseif (token已經登出或被kick out){ //顯示相關錯誤訊息,並且請使用者重新登入 header('Location:Login.php'); die(); } else { //更新token的最新活動時間 } } ?> 以上主要是拋磚引玉 希望有人有更好或差不多的作法可以分享、比對一下...XD --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.62.155 ※ 編輯: mrbigmouth 來自: 218.170.62.155 (06/15 22:34)
1F:推 ousapas:有些更安全的好像會用user_agent和salt用md5加密 06/16 00:17
2F:→ ousapas:user_agent + ip + salt 06/16 00:17
3F:→ ousapas:每次都對照是否符合 06/16 00:18
4F:推 howar31:好棒 最近也在研究安全的登入管理方式 06/17 16:04
5F:推 kajane:codeigniter的sesssion類別似乎就是用ous大所說的方法寫的 06/18 00:32







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP