我想知道,我如何在(例如:10分钟)不活动后删除所有某些饼干。
我正致力于保护php项目,其中一个步骤是
我应该删除管理cookie和在php / mysql项目中一定数量的不活动时间之后保存在mysql中的会话
有什么建议!
答案 0 :(得分:1)
好吧,你永远不应该存储任何重要的cookie,所以你应该只有一个会话ID存储为cookie。
只需将该Cookie设置为在10分钟后过期。将相同的时间戳存储在数据库中。
比如5分钟之后,做你需要做的事情,然后将cookie设置为在10分钟后过期并更新会话
比如说11分钟之后,将不会提供cookie,您可以将用户转发到“未经过身份验证的页面”。
在cron作业或每个页面加载时,删除过去有过期时间的所有会话。
答案 1 :(得分:0)
在cookie和db中保存随机字符串,在db中也保存过期时间.. 当客户端执行请求时从cookie中获取字符串并检查db中的相关过期时间... 如果时间过去会破坏cookie,否则不会......
<?php
//retrive cookies if exist the hash stored in it.
//cookie don't exist save the cookie
if(!$_COOKIE){
//create a random string in $rnd_string and the expire date in $data
setcookie("hash", $rnd_string);
//sql connection here
//adding rows to db..
mysql_query("INSERT INTO table (expiredate, hash) VALUES ('".$data."','".$rnd_string."')");
}
else{
//here the code if cookie exist
$hash=$_COOKIE['hash'];
//sql connection here
//retrieving row from db
$result=mysql_fetch_array(mysql_query("SELECT expiredate FROM table WHERE hash='".$hash."'"));
//in $result['expiredate'] you'll have the expire date, check this with server time and decide if is session is valid or not...
}
答案 2 :(得分:-1)
难道你不能将每个页面上的cookie设置为10 * 60到期吗?