Здравствуйте! Заранее спасибо за ответы! Вопрос в следующем: нужно ли шифровать куки? Например я записываю в куку айдишник юзера, нужно ли мне его шифровать или нет чтобы не произошла подмена или тому подобное? Еще раз спасибо!
Если у вас будет угнана сессия, т.е. полность скопированы куки, user-agent и т.д. вы ведь все равно не сможете определить произошла подмена или нет.
Просто ID пользователя как идентификатор сессии отдавать нельзя, т.к. в этом случае просто могут попытаться использовать другой ID. А так идентификатор сессии может быть чем угодно, главное чтобы вы смогли с его помощью востановить сессию на сервере. Примеры:
1. Зашифрован ID + useragent. (Плохой вариант если злоумышлиникам станет известен механизм шиврования)
2. Содержит ключ к базе данных (Получив вы можете проверить в базе наличие такой активной сессии и другие данные)
3. Может передаваться еще и токен к сессии, который после каждого запроса меняется. Пришел второй раз, что-то не то.
Зачем ?? это тоже самое, что кэшировать домен, а то вдруг кто узнает. Кукисы можно в браузере менять, только толку? Аутентификации сейчас везде по токену.
Зачем?!
Если юзер, значит уже есть сессия.
А если есть сессия - значит параметры юзера сервер уже знает.
Зачем знать их браузеру?!
Храните в серверной сессии всё что нужно после авторизации и всё.
xmoonlight: проблема в том, что сессия хранится до закрытия браузера! Как мне проверять был ли уже авторизован пользователь или нет? Каждый раз? Ну,например,тот самый вконтакте, я же не захожу и каждый раз авторизируюсь,а он оставляет КУКУ, кстати, посмортрел, она зашифрована:)
А если делать сессиями, то придется авторизовываться каждый раз когда сессия истекает,имхо не камильфо:) Но за ответ - спасибо!
Александр: серверная сессия хранится столько, сколько указано на сервере.
Увеличьте время сессии на сервере - это безопаснее, чем нежели уведут куку.
Ок. Хотите куку именно (лучше ставить ajax-ом):
token=hash(IP/network.browser_info[].browser_headers[].server_salt)
и запишите его рядом с юзером (в БД) сразу после успешного логона и затем ставьте его же в браузере.
В итоге, при заходе с другого компа ИЛИ провайдера ИЛИ браузера с этой же кукой - проверка токена НЕ ПРОЙДЁТ! и нужно будет выдать запрос на авторизацию.