- •1. Цель работы 2
- •2. Методические указания по организации самостоятельной работы 2
- •2.1 Сессии 2
- •3. Порядок выполнения работы и индивидуальные задания 11
- •3.1 Содержание отчета 11
- •3.2 Индивидуальные задания 11
- •1. Цель работы
- •2. Методические указания по организации самостоятельной работы
- •2.1 Сессии
- •2.1.1 Открытие сессии
- •2.1.2 Регистрация переменных сессии
- •2.1.3 Закрытие сессии
- •2.1.4 Пример простой сессии
- •2.2.1 Установка cookies
- •2.2.2 Пример простого приложения с cookies
- •2.2.3 Установка срока годности cookies
- •2.2.4 Удаление cookie
- •2.2.5 Проблемы безопасности, связанные с cookies
- •2.2.6 Установка области видимости cookie
- •2.2.7 Шифрование
- •2.2.8 Ограничение доступа для доменов
- •2.2.9 Отправка cookies по защищенному запросу
- •3. Порядок выполнения работы и индивидуальные задания
- •3.1 Содержание отчета
- •3.2 Индивидуальные задания
2.2.7 Шифрование
Применить шифрование к cookies можно разными способами, рассмотрим один из них:
<?
// создаем вектор начального состояния для шифрования
$vector = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_CAST_256,
MCRYPT_MODE_CFB), MCRYPT_RAND);
$key = "qwe233jk312jx813893xk312"; // ключ для расшифрования
$cook_name = "maks";
$cipher = mcrypt_encrypt(MCRYPT_CAST_256, $key, $cook_name,
MCRYPT_MODE_CFB, $vector);
setcookie("username", $cipher, "/decrypt.php");
?>
Как видно из листинга 10.13, расшифровка cookie проводится при помощи скрипта decrypt.php, код которого приведен ниже:
<?
// вектор начального состояния остается неизменным
$vector = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_CAST_256,
MCRYPT_MODE_CFB), MCRYPT_RAND);
$key = "qwe233jk312jx813893xk312";
$decrypt_name = mcrypt_ decrypt(MCRYPT_CAST_256, $key, $username,
MCRYPT_MODE_CFB, $vector);
echo("$decrypt_name, мы рады видеть вас на нашей страничке!");
?>
2.2.8 Ограничение доступа для доменов
Для дополнительной безопасности, список доменов, имеющих доступ к cookies, должен быть ограничен. Это можно сделать при помощи следующего кода:
setcookie("name", $value, "/web/index.php", ".server.com");
При таком ограничении заданной области видимости будут соответствовать домены с именами server.com, myservser.com, php.server.com и т. д., поскольку проверка на допустимость области видимости домена осуществляется по принципу концевого соответствия.
2.2.9 Отправка cookies по защищенному запросу
Не является излишним для cookie, хранящему секретные данные, разрешить отвечать только на защищенные запросы HTTP, так как в этом случае значительно затрудняется перехват данных, которыми обмениваются клиент и сервер. Для обеспечения защищенного соединения, функции setcookie передается шестой параметр со значением, равным 1:
setcookie("name", $value, time() + 600, "/web/", ".server.com", 1);
3. Порядок выполнения работы и индивидуальные задания
3.1 Содержание отчета
В отчете привести порядок выполнения работы, список использованных компонентов, экранные формы разработанного приложения и распечатку исходного кода.
3.2 Индивидуальные задания
Добавить страницы сайта для администратора и зарегистрированного пользователя.
Обеспечить доступ к информации на этих страницах только соответствующим пользователям, используя механизмы сессий или Cookies.
