1

Просто интересно, поскольку идентификатор сеанса хранится на стороне клиента cookie, я могу легко изменить этот файл cookie и изменить значение идентификатора сеанса на идентификатор другого идентификатора сеанса пользователя. Позволяет первому получить данные от второго пользователя. Если сеанс использовался для хранения «сеанса входа в систему», пользователь мог войти в систему, как если бы это был другой пользователь, а также сеансы, которые легко «взломали»? Я пробовал это сам, и я мог легко перемещаться с помощью другого сеанса пользователей, возможно, это работало только потому, что оба сеанса были с одного и того же ip и компьютера, но что делает ASP MVC-механизм для проверки безопасности, чтобы этого избежать?Риски безопасности сеанса ASP MVC

ответ

1

Вы не должны использовать сеанс для хранения «входа в сеанс». Файл cookie .ASPXAUTH используется для хранения информации аутентифицированного пользователя, и этот файл cookie зашифровывается с помощью машинного ключа, который вы либо устанавливаете, либо автоматически генерируете IIS.

Если вас беспокоит захват сеанса (в зависимости от вашего приложения, вы должны быть), вы должны использовать комбинацию cookie аутентификации (userId) и информацию в сеансе, чтобы убедиться, что значения действительно совпадают.

Две концепции сеанса и аутентификации обычно путаются и смешиваются, но их не должно быть. Один идентифицирует пользователя в приложении и подтверждает, что пользователь фактически был аутентифицирован (Forms Auth Ticket/Cookie), другой просто хранит данные между веб-запросом.

Вот еще некоторая информация, окружающая Forms Authentication Ticket and Cookie для .NET

Кроме того, пожалуйста, см this Q&A что несколько отношения к вашему вопросу - она ​​может дать еще несколько понимания того, как работают вещи и поможет вам добиться того, что вам нужно.

+0

Я знаю, что должен использовать AuthCookie, предоставляемый asp mvc, однако в этом приложении мне нужно симулировать «2 сеанса», мне нужно сохранить два отдельных пользовательских сеанса на одной странице, чтобы он мог войдите в один из них, и выйдите из одного из них, не вмешивайтесь в другое. Поэтому я решил использовать рамочный сеанс для этого. В противном случае, я думаю, я должен сделать свои собственные сеансовые куки? – user1777914

+0

Это какое-то странное требование, которое у вас есть, что я не совсем понимаю. Тем не менее, вы можете опубликовать свой собственный файл cookie с зашифрованной информацией, которая позволит вам быть в безопасности и достичь того, чего вы хотите. AFAIK, у вас не может быть двух сеансов от одного клиента, так что ... мои знания об этом будут ограничены. Однако, к вашему первоначальному вопросу, нет, идентификатор сеанса будет просто сохранен в виде обычного текста. – Tommy

+0

Добавлен немного больше в конце, что может помочь вам – Tommy

Смежные вопросы