2016-08-02 2 views
0

У меня есть этот код в моей странице входа:Насколько безопасно использовать переменные сеанса? ASP.NET C#

 Session["user"] = user.Text; 
     cmd.Parameters.AddWithValue("@user", Session["user"]); 
     reader = cmd.ExecuteReader(); 

Я видел эту ссылку how safe is it to use session variables - asp.net/c#

, и я хочу знать, если мне нужно изменить этот тип входа.

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

Я пытался использовать членство, но я не мог изменить регистр, поэтому перешел на сеанс.

+0

Из того, что я знаю, сессия переменные хранятся на сервере для каждого пользователя, поэтому там безопасно, если сервер не взломан. – lucas

+0

Насколько сложно получить доступ к серверу? и какой лучший защищенный способ сделать страницу входа в asp.net? – user6613640

+0

Взлом сервера не должен быть легким, и задача системного администратора - защищать системы помещений. Взломать сервер можно так же просто, как его самая слабая точка безопасности. Если система помещения будет взломана, у компании будут, скорее всего, большие проблемы, чем в одном приложении. Раньше я разработал свою собственную логику входа в систему, и со временем я обнаружил, что это намного проще, лучше, безопаснее и намного быстрее использовать функцию членства/идентификации. Google это, вы найдете много статей, помогающих вам реализовать его. – lucas

ответ

1

Использование состояния сеанса для отслеживания текущего пользователя для входа в порядке, пока вы находитесь на HTTPS. Переменные сеанса хранятся в памяти сервера (по умолчанию).

Мы все использовали аналогичный подход в Classics ASP и ASP.Net 1.0 (до членства в ASP.Net 2.0).

Основным недостатком является техническое обслуживание . Трудно поддерживать, когда приложение имеет слишком много страниц и слишком много пользователей с разными разрешениями.

+0

Это правильно, я предположил, что https по умолчанию, ни одно важное веб-приложение не должно передавать данные только по http: – lucas

+0

Возможно, пользователь хочет знать почему он не сохраняет, чтобы использовать его с HTTP :) – gsharp

0

Как уже было сказано, вам не нужно беспокоиться о безопасности сеанса, если вы используете протокол https и что ваш сервер приложений безопасен.

Но вы должны рассмотреть использование инфраструктуры Identity вместо старой структуры членства. С 2013 Идентичностью это новый стандарт аутентификации .NET, что позволяет SSO, поставщик роли, требование проверки подлинности на основе и т.д. ...

См http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity, чтобы понять, почему вы должны выбрать идентичность над членством)

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