Управление сессиями и куки - механизм взаимодействия - PullRequest
0 голосов
/ 25 февраля 2009

Мне интересно знать, как управление сессиями и куки работают в PHP. Я хочу знать их основной механизм, например, как браузер взаимодействует с файлами cookie и как файлы cookie используются для проверки данных сеанса на сервере.

Существуют ли веб-ресурсы, которые позволяют мне узнать это?

Ответы [ 3 ]

2 голосов
/ 25 февраля 2009

В частности, в PHP стандартным способом работы сеансов является то, что PHP генерирует случайный идентификатор сеанса и помещает его в файл cookie. (По умолчанию он называется PHPSESSID). Этот файл cookie обрабатывается браузером путем его локального сохранения на компьютере пользователя и отправляется с каждым запросом в домен, к которому он принадлежит.

Этот идентификатор сеанса затем используется для ссылки на хранилище данных на сервере, по стандартному расположению в / tmp / при установке apache в linux. Именно здесь все в массиве $ _SESSION хранится между запросами.

Как вы можете заметить, это настолько же безопасно, как и cookie, поскольку между пользователем и сервером нет реальной аутентификации, согласно которой пользователь является "реальным" владельцем идентификатора сеанса. Это означает, что так называемый «перехват сеанса» возможен путем отслеживания cookie и вставки cookie с идентификатором сеанса на компьютер злоумышленника. Это может быть использовано, чтобы захватить учетную запись на веб-странице и просматривать ее так же, как если бы вы были первоначальным пользователем, поскольку для сервера вы .

Существует также альтернативный, еще более небезопасный, способ поддерживать сеанс, поддерживаемый PHP. Это делается путем отправки идентификатора сеанса в виде переменной GET с каждой ссылкой. Как вы можете заметить, это означает, что если пользователь просто скопирует одну из этих ссылок, он выдаст все свои учетные данные. =)

Дополнительную информацию можно найти в руководстве по PHP .

1 голос
/ 25 февраля 2009

Из Обработка сессий PHP руководство:

Посетителю, заходящему на ваш веб-сайт, присваивается уникальный идентификатор, так называемый идентификатор сеанса. Это либо сохраняется в cookie на стороне пользователя, либо распространяется в URL.

Этот уникальный идентификатор представляет собой большое случайное число, которое сохраняется на стороне сервера, чтобы соответствовать ему в следующий раз, когда клиент сделает новый запрос. Обычно он помещается в каталог / tmp.

0 голосов
/ 25 февраля 2009

Cookie - это набор данных, связанный с HTTP-адресом. * 1001 Т.е. *

1/ Browser requests www.google.com
2/ www.google.com response includes setting a cookie
3/ From this point on and as long as the cookie is valid (there's an expiry time associated with it), each subsequent request made by the browser to www.google.com/anything includes the cookie above

Подробнее: http://en.wikipedia.org/wiki/HTTP_cookie

Файл cookie позволяет создать сеанс по протоколу HTTP без сохранения состояния в том смысле, что он позволяет изолировать диалог клиент-сервер от других клиентов, взаимодействующих с сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...