истекает срок действия определенных файлов cookie после определенного времени бездействия - PullRequest
1 голос
/ 06 марта 2010

Интересно, как я могу удалить все определенные файлы cookie после (например, 10 минут) бездействия?

я работаю над защитой проекта php, и один из шагов - это

я должен удалить административные куки и сеанс, сохраненный в mysql после определенного времени бездействия в проекте php / mysql

есть какие-нибудь предложения!?

Ответы [ 3 ]

1 голос
/ 06 марта 2010

Что ж, вы никогда не должны хранить что-либо важное в cookie-файлах, поэтому вы должны хранить только идентификатор сессии в виде cookie-файла.

Просто установите срок действия этого файла cookie через 10 минут.Сохраните эту же временную метку в своей базе данных.

Через, скажем, 5 минут, выполните то, что вам нужно, затем установите срок действия файла cookie через 10 минут и обновите сеанс.

Через, скажем, еще 11 минут, файл cookieне будет предоставлен, и вы можете переслать пользователя на свою «страницу без аутентификации».

В задании cron или при каждой загрузке страницы удалите все сеансы, срок действия которых истек в прошлом.

0 голосов
/ 18 июня 2010

Не могли бы вы просто установить куки на каждой странице, чтобы истек в 10 * 60?

0 голосов
/ 06 марта 2010

сохранить случайную строку как в cookie, так и в db, в db также сохранить время истечения. когда клиент выполняет запрос, получить строку из cookie и проверить время истечения в db ... если время истекло, уничтожьте куки, иначе нет ...

<?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...        
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...