1) Куки - это всего лишь уникальный идентификатор пользователя в виде строки, которая хранится в браузере. Сервер проверяет наличие у пользователя куки при каждом запросе и присваивает уникальный идентификатор, если его нет.
2) Сессии - это база данных на сервере, которая хранит все уникальные идентификаторы в виде строк и данные, связанные с конкретным идентификатором (пользователем). Пример данных: посещенные страницы, время посещения, произведена ли авторизация
3) Если юзер успешно вводит логин и пароль, то в сессии помечается, что конкретный ID осуществил авторизацию. Я могу передать строчку с уникальным идентификатором другу, и если он сохранит её в своём браузере - сайт не сможет определить различия. Т.е, на сайте он получит все права, что и я.
4) Некоторые сайты записывают дополнительные данные: версию браузера и айпи-адрес. В случае их смены, идентификатор назначается заново и логин с паролем приходится вводить заново. (Что еще проверяется?)
Куки - это всего лишь уникальный идентификатор пользователя
- нет, это просто данные на стороне юзера, в его браузере, там может быть любой набор данных.
Сессии - это база данных, которая хранит все уникальные идентификаторы в виде строк и данные, связанные с конкретным идентификатором
- тоже не так. Сессии это данные на стороне СЕРВЕРА, но для идентификации используется одна уникальная кука на стороне ЮЗЕРА. Сессии это по сути как куки только их нельзя подменить на стороне юзера.
Антон Р., ага, я имел ввиду сессии - база данных на стороне сервера. Для авторизации юзеру всегда назначается уникальный идентификатор в куки, верно? И на сервере есть база данных, в котором хранятся идентификаторы. Приблизительно в таком виде:
1. 28e2ue28eu2e82u8e2ue28 | Осуществлен вход
2. 3rjhq3j3rj3rj3krw3klrjwrj3w| Осуществлен вход
3. sdfijsdfjw3kjf3jf3io3jf3jf3of3 | Анонимный.
И если передать 28e2ue28eu2e82u8e2ue28, то можно получить те же права, что и залогиненный юзер?