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