Содержание

Слайд 2

Определение сессии Web-сессия – специальный ключ (идентификатор сессии), хранящийся клиентской программой

Определение сессии

Web-сессия – специальный ключ (идентификатор сессии), хранящийся клиентской программой и

сопоставляемый с пользовательскими данными на стороне сервера.
Сессии предназначены для хранения и передачи данных отдельного пользователя между динамическими страницами одного ресурса.
Слайд 3

Причины появления сессий Web-сервер каждый раз при обращении к очередной странице

Причины появления сессий

Web-сервер каждый раз при обращении к очередной странице инициализирует

новую HTTP-транзакцию без возможности связывания старых данных пользователя с вызовом новой динамической страницы.
Слайд 4

Способы хранения ключа сессии на стороне клиента Ключ (идентификатор сессии) на

Способы хранения ключа сессии на стороне клиента

Ключ (идентификатор сессии) на стороне

клиента может храниться двумя способами:
В HTTP-Cookie (относительно безопасно)
Как часть URL (небезопасно)
Слайд 5

Хранение сессии на стороне сервера Способы хранения данных внутри сессии никак

Хранение сессии на стороне сервера

Способы хранения данных внутри сессии никак не

регламентируются и могут быть представлены различными способами: в структурных файлах сервера, в БД различного типа и т.д.
Данные сессии хранятся на сервере в виде массива.
Слайд 6

Использование сессий Сессии могут использоваться для тех же целей, что и

Использование сессий

Сессии могут использоваться для тех же целей, что и HTTP

Cookie, но с сохранением данных на стороне сервера.
С помощью сессий также реализуются следующий функционал:
Подтверждение авторизации пользователя на сайте
Хранение временных данных, вводимых из нескольких форм
Корзина в интернет-магазине
Хранение символьного значения картинки из CAPTCHA
Слайд 7

Механизм работы сессий Ключ считывается с сервера либо из строки URL,

Механизм работы сессий

Ключ считывается с сервера либо из строки URL, либо

из Cookie
На этапе проверки ключа проверяется, существуют ли данные на сервере, сопоставляемые с этим ключом.
Ключ генерируются таким образом, чтобы исключить возможность его подмены.
Слайд 8

Сессии в PHP Ключ PHP-сессии, сохраняемый в Cookie, именуется по-умолчанию PHPSESSID.

Сессии в PHP

Ключ PHP-сессии, сохраняемый в Cookie, именуется по-умолчанию PHPSESSID.
Значения сессии

хранятся в суперглобальном массиве $_SESSION
Слайд 9

Сохранение данных сессии session_start(); /* инициализация механизма работы сессии */ $_SESSION["user"]

Сохранение данных сессии

session_start(); /* инициализация механизма работы сессии */
$_SESSION["user"] = "pavel";

/* Сохранение переменной сессии "user" со значением "pavel" */
if(isset($_SESSION["user"]) && !empty($_SESSION["user"]))
{
print "Пользователь авторизован";
}
else
{
print "Требуется авторизация";
}
Слайд 10

Удаление данных сессии Для того, чтобы удалить переменную сессии, достаточно опустошить

Удаление данных сессии

Для того, чтобы удалить переменную сессии, достаточно опустошить индекс

ассоциативного суперглобального массива $_SESSION:
unset($_SESSION["items"]);
// Пользователь удалил все товары из корзины покупок
Слайд 11

Удаление всей сессии Для того, чтобы удалить полностью текущую сессию пользователя,

Удаление всей сессии

Для того, чтобы удалить полностью текущую сессию пользователя, можно

вызвать функцию session_destroy():
session_destroy();
// Пользователь нажал кнопку "Выход", а значит более он не авторизован
Слайд 12

Функции работы с идентификатором и его именем Функция, возвращающая текущий идентификатор

Функции работы с идентификатором и его именем

Функция, возвращающая текущий идентификатор сессии:
string

session_id ([ string $id ] )
Функция, возвращающая или устанавливающая (если указана переменная $name) имя переменной Cookie для идентификатора сессии:
string session_name ([ string $name ] )
Слайд 13

Безопасность сессии Узнав идентификатор сессии, злоумышленник может получить доступ к учётной

Безопасность сессии

Узнав идентификатор сессии, злоумышленник может получить доступ к учётной записи

другого пользователя. Способы получения идентификатора:
Перехватка GET-запроса через HTTP-заголовок Http-Referer на сайте, на который осуществлён переход (в том случае, если сессия хранится как часть URL)
Перехватка Cookies путём внедрения JavaScript-кода на одну из страниц сайта через XSS уязвимость ресурса или дополнительные привилегии администратора
Прослушивание HTTP-трафика
Слайд 14

Безопасность сессии Существуют следующие методы обеспечения безопасности сессии: Запрет на хранение

Безопасность сессии

Существуют следующие методы обеспечения безопасности сессии:
Запрет на хранение идентификатора сессии

в части URL (только в Cookies)
Экранирование символов, способных внедрить HTML-код на страницу (можно использовать функцию htmlspecialchars())
Использование протокола SSL над HTTP
Слайд 15

Другие технологии защиты сессии Ограничение срока действия сессии Привязка к IP-адресу

Другие технологии защиты сессии

Ограничение срока действия сессии
Привязка к IP-адресу пользователя, его

браузеру и другим характеристикам
Слайд 16

Функция md5() string md5 ( string $str ) Вычисляет MD5-хэш строки

Функция md5()

string md5 ( string $str )
Вычисляет MD5-хэш строки str используя

алгоритм MD5 RSA Data Security, Inc. и возвращает этот хэш.
$str = 'яблоко';
if (md5($str) === '1afa148eb41f2e7103f21410bf48346c') {
echo "Вам зеленое или красное яблоко?";
}
?>