Всемирная паутина - это немного больше, чем серия статических страниц и медиа-данных. Изначально планировалась простая публикация и управление страницами, но Web стал действительно полезен, когда сайты начали предлагать динамический контент. Большая часть динамического контента привязана к сессии, например, корзина интернет-магазина - это данные сессии, она уникальная для каждого браузера (пользователя).
В этой главе будут рассмотрены инструментальные средства и методы для мониторинга сессии.
Использование Cookies и сессий для отслеживания данных пользователя
Чтобы определить, что тот или иной пользователь делает на сайте, вам нужно хранить информацию о пользователях, например имя пользователя, па-роль, время между визитами, предпочтения и т.д. В Web-программировании для этого используются две популярные техники - Cookies и сессии.
Cookies
Cookies - это небольшие части данных, которые хранятся на компьютере пользователя. Когда пользователь получает доступ к страницам вашего сайта, браузер пользователя отправляет на сервер доступные и необходимые сайту Cookies. Хранение любых данных на пользовательском компьютере - это потенциальный риск, поскольку вы никак не контролируете способ хранения этих данных. Если в браузере включен прием Cookies, браузер принимает их и отправляет серверу при определенных обстоятельствах. Принятые Cookies также называют установленными.
Преимущества
• Cookies могут хранить информацию годами.
• Cookies позволяют сбалансировать нагрузку на сервер, поскольку все данные хранятся на пользовательском компьютере.
Недостатки
• Некоторые браузеры могут не принимать Cookies (или пользователь может отключить их прием).
• Размер Cookies ограничен (обычно он не превышает 512 Кб).
• Пользователи могут при желании удалить Cookies.
• Cookies привязаны только к одному компьютеру. Если пользователь перейдет на другой компьютер, он не сможет использовать ранее установленные Cookies.
Сессии
Сессии состоят из уникального идентификатора сессии и некоторого механизма хранения данных на вашем сервере. Поскольку данные хранятся на сервере, пользователь не может манипулировать ними.
Преимущества
• Несмотря на то, что идентификатор сессии хранится с Cookies, РНР и другие системы Web-программирования могут обеспечить работу сессий, даже если пользователь отключил Cookies. Поэтому сессии работают всегда.
• Вы можете хранить в сессии столько данных, сколько вам нужно.
• Пользователи не могут просматривать и редактировать данные сессии.
Недостатки
• Сессии привязаны к одному окну браузера или к одному процессу браузера. Когда вы закрываете окно браузера (за исключением ситуации, когда вы сохранили идентификатор сессии в постоянном Cookie), вы больше не сможете получить доступ к старым данным. Однако при разработке системы аутентификации вы можете ассоциировать идентификатор сессии с именем пользователя.
• Сессии привязаны к серверу. Если у вас есть сервер продаж и сервер контента, сервер продаж ничего не знает о сессиях сервера контента, и наоборот. Чтобы решить эту проблему, вам нужно раз-работать собственный механизм хранения сессий.
• Поскольку идентификатор сессии - это данные, которые читают и отправляют пользователи, возможен перехват сессии для доступа к сессии другого пользователя.
В абстрактном понимании вы можете думать о сессиях как о расширенных Cookies. Компьютер пользователя получает доступ только к идентификатору сессии, остальные данные хранятся на сервере.
Существует много различных воплощений технологии сессий, но основная идея всегда одна и та же.
Помните, что, если есть данные, которые пользователь не должен видеть и/или редактировать, их нужно поместить в сессию, а не в Cookies. Все данные, полученные из Cookies, нужно перепроверять, поскольку они могут быть легко сфабрикованы.
|