ASP.NET и состояние сеанса / Информация для входа - PullRequest
0 голосов
/ 25 марта 2010

Являются ли переменные сеанса (в ASP.NET) самым безопасным способом хранения данных, касающихся того, вошел ли пользователь в систему или нет? т.е. Session["LoggedIn"] = 'No'

Я знаю, что переменные сессии могут быть подделаны, поэтому я предполагаю, что должен быть более безопасный способ.

Любые идеи для ASP.NET?

Спасибо!

Ответы [ 6 ]

2 голосов
/ 25 марта 2010

Я никогда не слышал о возможности подмены переменных сеанса в ASP.Net (или любой другой платформе, о которой мне известно)

Вы можете подделать переменные формы, это то, о чем вы думаете?

1 голос
/ 13 июля 2010
1 голос
/ 25 марта 2010

Сессии безопасны тем, что они запускаются на сервере.Поэтому получить их напрямую довольно сложно.Однако это не значит, что они абсолютно безопасны (но что?).Хакеры все еще могут обманывать других людей, угоняя другие сессии.Это называется Session hijacking.Вы можете получить информацию о том, как уменьшить вероятность этого здесь

Это один из самых безопасных способов хранения данных, поэтому вы должны их использовать.Но не забывайте, что если вы используете метод in-proc по умолчанию, сеансы будут храниться в памяти.Если вы храните слишком много данных, ваша память будет быстро израсходована.Для больших объемов данных рассмотрите возможность хранения сеансов в базе данных или на внешнем выделенном сеансе сервере.

1 голос
/ 25 марта 2010

Переменные сессии должны быть безопасными для использования. Печенье с другой стороны, нет.

0 голосов
/ 25 марта 2010

Сеансы хороши в использовании, но имейте в виду, что если вы перейдете на несколько серверов, они могут стать и выдавать.

Обычно вы можете определить, вошел ли кто-то в систему, просто проверив следующее, предполагая, что вы используете формы или проверку подлинности Windows:

HttpContext.Current.User

Я также сохранил в сессине расширенную информацию для пользователя, к которой мне может понадобиться часто обращаться, например, к его профилю, который может содержать такие вещи, как полное имя, адрес электронной почты, уровень доступа и т. Д. *

0 голосов
/ 25 марта 2010

@ V-Man, у вас есть только несколько вариантов того, что ваше решение не имеет состояния. Один из них - сеансы, и если вы не создаете огромную веб-систему, которая не распространяется на несколько веб-серверов, то переменные сеансов - ваш лучший выбор. Другой способ сделать это - кэшировать результаты.

...