Лучшая практика для файлов cookie сеанса - не устанавливать время истечения, чтобы они были действительны для сеанса браузера. Если вы установите время истечения, cookie станет постоянным, будет храниться на диске на клиенте и т. Д. - это увеличивает общий риск.
Вы правы в том, что любой, у кого есть cookie, может выдать себя за пользователя. Чтобы избежать этого, вы должны установить cookie как httpOnly
, чтобы избежать доступа к Javascript (XSS) и secure
, чтобы он отправлялся только через https.
Несмотря на то, что для корректного управления сеансами есть глубины, похоже, не имеет смысла шифровать идентификатор сеанса. Какова цель этого шифрования? Идентификатор сеанса должен быть просто большим случайным числом (возможно, закодированным в более короткую строку, но все же), его не нужно шифровать.
Общий совет по управлению сессиями - не реализовывать его самостоятельно Слишком много подводных камней, и почти все фреймворки (или языки) имеют надежную реализацию, которую вы можете просто использовать достаточно безопасно. Трудно избежать всех потенциальных уязвимостей.