Одним из наиболее полезных применений cookie-наборов является возможность создания сеансов, которые в действительности позволяют преодолеть отсутствие поддержки состояния протокола HTTP. При работе с сеансами в РНР есть возможность сохранять переменные (включая массивы и классы) между запусками сценариев и вызывать их позднее. Для функционирования такой системы Web-сервер должен иметь возможность отличать один браузер от другого, и в этом заключается роль cookie-наборов. В отличие от предыдущего примера, в котором используются cookie-наборы для определения имени посетителя, сеансы не сохраняют какой-либо значащей информации на машине клиента. По аналогии с парковкой автомобилей, сеансы используют концепцию, по которой каждому браузеру назначается "квитанция" (называемая идентификатором сеанса), которая затем присутствует в каждом запросе.
Этот идентификатор сеанса сравнивается затем с определенными данными и эти данные доступны внутри РНР-сценария.
Несмотря на то, что сеансы увеличивают защищенность данных (поскольку чувствительная информация теперь не хранится в клиентском браузере), полной защиты они не обеспечивают. Поскольку все данные о конкретном пользователе помещены в отдельную строку, злоумышленник может перехватить сеанс, определив правильный идентификатор сеанса. Последствия такого вмешательства зависят от того, насколько безопасным должен быть ваш сайт. Считается хорошей практикой создавать сайты, предполагая, что подобные вмешательства возможны; то есть все критические данные (наподобие номеров кредитных карточек) должны быть недоступны, если идентификатор сеанса рассекречен.
|