由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
BuildingWeb版 - 菜鸟再问:php如何判断页面过期
相关主题
怎么区别网站访问者,是不是只能通过 User-agent?紧急请教,初级问题。
[转载] 请教ASP高手How to change a port binding number?
关于网站数据库的一个问题help, javawebserver一问
一个java web access的问题a question about Apache Server, Thank you tommy
一般用什么方案区别不同 用户?How many sessions can be in one project?
又遇到个诡异问题密码窗口一问
请问一下python 2.6得cookie和session怎么用得2000下放cookie的是哪个文件呀
Question on ASP, Help!!!有成功集合过Apache2和PHP4的大侠吗?
相关话题的讨论汇总
话题: sessionid话题: session话题: sessfile话题: 过期话题: jan
进入BuildingWeb版参与讨论
1 (共1页)
d*****l
发帖数: 8441
1
实现安全logout.
谢谢!
c***c
发帖数: 21374
2
用php自带的session管理

【在 d*****l 的大作中提到】
: 实现安全logout.
: 谢谢!

c***c
发帖数: 21374
3
发信人: ggxxzz (古香斋), 信区: BuildingWeb
标 题: 我想
发信站: BBS 未名空间站 (Wed Jan 9 16:57:23 2008)
楼主问的是server如何知道一个given session id(can be already expired,
也就是您上
面讲的那个cron job如何知道一个session已经过期) 是否过期,而非如何enfor
ce session expiration(那才是上面的回答)。

【在 d*****l 的大作中提到】
: 实现安全logout.
: 谢谢!

c***c
发帖数: 21374
4
发信人: ggxxzz (古香斋), 信区: BuildingWeb
标 题: 恩
发信站: BBS 未名空间站 (Wed Jan 9 13:02:23 2008)
code是最好的解释,你琢磨一下就明白了:
假设session是file storage:
public function isSessionExpired($sessionId)
{
if(!$sessionId) $sessionId = session_id();
$sessExp = ini_get('session.gc_maxlifetime');
$sessSavePath = ini_get('session.save_path');
$sessFile = "{$sessSavePath}/sess_$sessionId";
if(!file_exists($sessFile) || (time() - filemtime($sessFile) > $sessExp))
return true;
else return false;

【在 d*****l 的大作中提到】
: 实现安全logout.
: 谢谢!

c***c
发帖数: 21374
5
发信人: lihao0129 (lihao), 信区: BuildingWeb
标 题: Re: 恩
发信站: BBS 未名空间站 (Wed Jan 9 16:28:25 2008), 转信
最省事的是用 cookie,设定一个expire-time
在每一个 request 后面都 re-send 这个 cookie。
这样可以保证 expire-time时间内没有活动的话 cookie
自动过期,它carry的 session_id 也自动失效。。
当然光这样client侧很容易hack你,你可以在server
端定制一些cron jobs定期删除那些存在DB或文件系统
里面过期的session记录...
客户端关闭cookie的比较不爽,我一般都给它们加上
了特别的URI信息.属于不受欢迎的访问者..

【在 d*****l 的大作中提到】
: 实现安全logout.
: 谢谢!

l*******9
发帖数: 177
6

这个,sever侧的cron job可以制定个固定的时间同时删除,是针对site-width
的所有sessions,无论是 file-based 的或是 DB-based,脚本都不难,且不需要
用到 httpd 的资源
过期cookie则是针对每个访问者,得用 httpd 资源,两者并不完全等同。。

【在 c***c 的大作中提到】
: 发信人: ggxxzz (古香斋), 信区: BuildingWeb
: 标 题: 恩
: 发信站: BBS 未名空间站 (Wed Jan 9 13:02:23 2008)
: code是最好的解释,你琢磨一下就明白了:
: 假设session是file storage:
: public function isSessionExpired($sessionId)
: {
: if(!$sessionId) $sessionId = session_id();
: $sessExp = ini_get('session.gc_maxlifetime');
: $sessSavePath = ini_get('session.save_path');

1 (共1页)
进入BuildingWeb版参与讨论
相关主题
有成功集合过Apache2和PHP4的大侠吗?一般用什么方案区别不同 用户?
httpd, php under RH8.0又遇到个诡异问题
关于apache的新手问题请问一下python 2.6得cookie和session怎么用得
PHP apache 配置问题Question on ASP, Help!!!
怎么区别网站访问者,是不是只能通过 User-agent?紧急请教,初级问题。
[转载] 请教ASP高手How to change a port binding number?
关于网站数据库的一个问题help, javawebserver一问
一个java web access的问题a question about Apache Server, Thank you tommy
相关话题的讨论汇总
话题: sessionid话题: session话题: sessfile话题: 过期话题: jan