В принципе, вы можете хранить все, что хотите в сессии. Единственные предостережения:
- если вы не используете защищенные соединения (например, SSL), идентификатор сеанса может быть перехвачен и перехвачен. Это не имеет значения, потому что имя пользователя и пароль также могут быть взломаны, и вы подвергаетесь атакам «человек посередине» и т. Д. Таким образом, в целом ваша система работает нормально и обеспечивает низкий уровень безопасности без SSL.
- В статьях по PHP упоминаются некоторые проблемы с общим хостингом и перехватом сессий. Я не уверен, что это правда, поэтому я разместил вопрос здесь . Редактировать: Эта проблема кажется реальной, поэтому вам придется использовать один из обходных путей для сохранения сеанса (например, базы данных), если вы используете PHP.
В целом, однако, большинство упомянутых проблем безопасности (включая атаки XSS) связаны не с хранением данных в Session, а с общими проблемами безопасности. Хранение идентификатора пользователя (или какой-либо другой зашифрованной формы) в Session обычно довольно безопасно.
Самое главное: если бы вы использовали свой собственный алгоритм для генерации случайного cookie-кода для каждого пользователя, это, несомненно, имело бы больше недостатков безопасности (не будучи экспертом), чем алгоритмы генерации сеансового ключа PHP , ASP.NET, Rails, что угодно ...
Я мог бы найти более подходящую цитату Брюса Шнайера, но она подойдет: «Никто не может дублировать уверенность, которую RSA предлагает после 20 лет криптоаналитического обзора».