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