Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 4 - сеансы.doc
Скачиваний:
7
Добавлен:
03.05.2019
Размер:
261.63 Кб
Скачать

2.2.3 Установка срока годности cookies

По умолчанию cookies устанавливаются на один сеанс работы с броузером, однако можно задать для них более продолжительный срок существования. Это очень удобное и полезное свойство, поскольку в этом случае пользователю не нужно предоставлять свои данные вновь при каждом посещении сайта.

Как уже говорилось, срок годности устанавливается в секундах относительно начала эпохи. В PHP существуют функции time и mktime для работы с датой и временем, позволяющие переводить текущее время в количество секунд с начала эпохи. Функция time просто переводит текущее системное время в количество секунд, прошедших с начала эпохи:

time

Синтаксис:

time();

Усовершенствованным вариантом функции time является функция mktime:

mktime

Синтаксис:

int mktime ([int hour [, int minute [, int second [, int month [, int

day [, int year [, int is_dst]]]]]]])

Аргумент is_dst этой функции определяет, попадает ли эта дата в период летнего времени и может принимать следующие значения:

  • -1 (По умолчанию. Означает, что свойство не задано);

  • 0 (Временной интервал не приходится на период летнего времени);

  • 1 (Временной интервал приходится на период летнего времени).

Примеры установки сроки годности cookies:

<?

/* этот cookie действителен в течение 10 мин после создания */

setcookie("name", $value, time() + 600);

/* действие этого cookie прекращается в полночь 25 января 2010 года */

setcookie("name", $value, mktime(0,0,0,01,25,2010));

/* действие этого cookie прекращается в 18.00 25 января 2010 года */

setcookie("name", $value, mktime(18,0,0,01,25,2010));

?>

2.2.4 Удаление cookie

Удалить cookie просто. Для этого надо вызвать функцию setcookie и передать ей имя того cookie, который подлежит удалению:

setcookie("name");

Другие установленные cookie при этом не удаляются.

2.2.5 Проблемы безопасности, связанные с cookies

Иногда в cookies приходится хранить конфиденциальные данные, и в этом случае разработчик должен позаботиться о том, чтобы информация хранящееся в cookie не была передана третьим лицам. Существует несколько методов защиты информации, хранящейся в cookie:

  • установка области видимости cookies;

  • шифрование;

  • ограничение доступа для доменов;

  • отправка cookies по защищенному запросу.

Наилучшим решением является комплексное применение всех этих способов.

2.2.6 Установка области видимости cookie

Поскольку, по умолчанию, доступ к cookie происходит из корневого каталога, это может создать "дыры" в системе защиты, так как cookies становятся доступными в любом подкаталоге этого каталога. Ограничить доступ к cookies для всех страниц, кроме расположенных в конкретном каталоге, к примеру, /web, можно следующим образом:

setcookie("name", $value, "/web/");

Однако и в этом случае, к примеру, каталоги /web/index.php, /web1/page.html и т. д. будут удовлетворять этому ограничению. Если такое положение также является нежелательным, можно ограничить область видимости cookies до конкретной страницы:

setcookie("name", $value, "/web/index.php");

Однако и такой способ в полной мере не решает проблему, так как в этом случае доступ к информации, содержащейся в cookie, может получить, к примеру, скрипт /web/index.php-script/anti_cookie.php. Поэтому появляется необходимость в шифровании.