Что такое идентификатор сессии?

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

Эти идентификаторы сеанса позволяют посетителю веб-сайта быть четко идентифицируемым во время посещения сайта с помощью электронной метки, выданной сервером. Другие термины для идентификатора сессии включают идентификатор сессии и маркер сессии. В этом подробном руководстве мы объясним, как посетителю сайта присваивается идентификатор сеанса и почему это полезно.

Где и зачем используются идентификаторы сеансов?

Идентификатор сессии — это маленький технологический помощник, который позволяет четко идентифицировать пользователя на сайте и присвоить ему сессию. Идентификатор сессии позволяет получить доступ к данным, полученным в ходе последней сессии пользователя. Эти данные сохраняются на сервере соответствующего веб-сайта. Идентификатор представляет собой строку цифр и букв. Например, следующая строка символов представляет собой 32-символьный идентификатор сеанса, созданный с помощью PHP:

<?php
session_start();
  echo "The session ID is:" . session_id();
  $sid=session_id(); //creates a variable with the session ID
?>

Если у вас есть собственное веб-пространство с FTP-доступом, вы можете попробовать сделать это очень просто с помощью этих трех строк кода. В этом примере тестовой сессии мы получили результат: «The session ID is: 84266fdbd31d4c2c6d0665f7e8380fa3”

Когда содержимое запрашивается с сервера, этот тег передается от сервера к пользователю и, таким образом, создает ссылку на содержимое, принадлежащее последней сессии на сервере. Личные данные пользователя остаются анонимными — все, что определяется, это то, что один и тот же пользователь заходит на сайт. Без этого идентификатора сервер считает запрос новым и поэтому генерирует новый идентификатор сессии.

В чем суть? Идентификаторы сессий играют важную роль в электронной коммерции. Например, идентификатор сессии используется для привязки содержимого корзины или недавно просмотренных товаров в магазине к конкретному пользователю. Это делает его более удобным для покупателя и помогает улучшить удобство использования сайта. Временно сохраненные данные с посещенных сайтов показывают, какой контент был запрошен. Этот же метод имеет и другие важные функции: используя эту информацию — т.е. идентификатор сеанса — можно показывать целевую рекламу (баннеры, всплывающие окна, ссылки и т.д.), которая с большей вероятностью заинтересует пользователя; это приводит к увеличению числа откликов.

Функции идентификатора сеанса

Идентификатор сессии генерируется сервером в начале сессии, затем передается в браузер пользователя и сохраняется, когда пользователь отправляет свой запрос. Все данные, связанные с этой сессией, также сохраняются сервером в специальном каталоге на жестком диске. Обычно это временный каталог «…/tmp». Помимо идентификатора сессии, здесь сохраняются другие данные и содержимое, например, идентификаторы пользователей и, если это необходимо для сайта, содержимое корзины. Этот файл может иметь, например, следующее содержание:

/tmp/sess_84266fdbd31d4c2c6d0665f7e8380fa3
UserID|i:1142;MyCart|a:2:{i:0;s:8:"Item_Nr01";i:1;s:8:"Item_Nr02";}

В следующем разделе мы объясним две основные техники, используемые для отправки идентификатора сессии пользователю.

Как идентификатор сессии отправляется пользователю и обратно?

Существует два различных способа отправки идентификатора сессии.

URI

После первого посещения сайта пользователи отправляют дальнейшие запросы, нажимая на ссылки или вводя формулы. Как только соответствующий идентификатор сессии был предоставлен в первый раз, это изменяет URI (унифицированный идентификатор ресурса), поскольку идентификатор сессии присоединяется к URI в качестве переменной. Эту ссылку можно просмотреть с помощью предопределенной переменной $sid следующим образом:

<a href="https://www.yourwebsite.com/cart.php?sid=$sid">www.yourwebsite.com</a>

Выдает следующую ссылку в браузере:

https://www.yourwebsite.com/cart.php?sid=84266fdbd31d4c2c6d0665f7e8380fa3

Альтернативным методом является использование идентификатора сессии в качестве пути:

<a href="https://www.yourwebsite.com/$sid/cart.php">www.yourwebsite.com</a>

Это дает следующую измененную ссылку в браузере:

https://www.yourwebsite.com/84266fdbd31d4c2c6d0665f7e8380fa3/cart.php

Затем сервер конфигурируется таким образом, что ID сессии всегда включается в путь соответствующего запроса пользователя, что позволяет его идентифицировать.

Этого также можно достичь с помощью поля в формуле, «обернув» сгенерированный идентификатор сессии в скрытое поле.

<form method="post" action="/execute_action"></form>
	<input type="text" name="CusNo">
	<input type="hidden" name="sessionId" value="$sid">
	< … >

Таким образом, идентификатор сессии отправляется обратно на сервер с помощью определенного параметра POST. Таким образом, идентифицируются сессии, принадлежащие текущему пользователю.

HTTP-заголовки

Для HTTP-заголовков необходимы файлы cookie. Cookie — это небольшой текстовый файл и расширение протокола передачи гипертекста (HTTP). Эти текстовые файлы сохраняются локально у пользователя и содержат идентификатор сессии. Когда на сервер отправляется новый запрос, вместе с ним на сервер отправляется содержимое этих сессионных cookie, которые одновременно временно сохраняют идентификатор сессии. Если идентификатор сессии в cookies пользователя и на сервере совпадают, запрос выполняется.

Примечание

В соответствии с руководящими принципами GDPR в Европе — по состоянию на март 2021 года — сессионные файлы cookie не подпадают под действие правил opt-in. Поэтому для этих специальных файлов cookie не требуется активного согласия. Однако это не означает, что пользователей не нужно информировать об этом.

Использование таких файлов можно распознать, например, если информация, которая была однажды введена в форму, не требует повторного ввода в то же поле при следующем использовании формы. Ранее введенные данные предлагаются сразу же после набора первых символов.

Насколько безопасны идентификаторы сессий?

В целом, идентификаторы сеансов не гарантируют безопасного использования Интернета. Любой человек, обладающий необходимыми знаниями в области программирования, может незаметно получить доступ к содержимому сессии, что называется перехватом сессии.

Идентификаторы сеанса, которые отправляются пользователям и сохраняются с помощью сеансовых файлов cookie, автоматически удаляются при закрытии браузера. Для этого недостаточно закрыть только соответствующую вкладку браузера. Поэтому сеансовые файлы cookie не представляют повышенного риска для безопасности, в отличие от файлов cookie, которые сохраняются на более длительный срок.

Оцените статью
cdelat.ru
Добавить комментарий