реализация безопасности с переменными сеанса, как это небезопасно - PullRequest
2 голосов
/ 05 мая 2010

Я занимаюсь веб-проектами в dotnet. В настоящее время я реализую безопасность, используя переменные сеанса. Я сохраняю текущий идентификатор пользователя и тип пользователя в сеансе и аутентифицирую пользователя по этим переменным сеанса (например, Session ["UserId"], Session ["UserName"] и Session ["UserType"]).

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

Пожалуйста, помогите мне в этом.

1 Ответ

3 голосов
/ 06 мая 2010

Под капотом стандартная проверка подлинности на основе форм ASP.NET в основном работает так же, как вы описываете. Отсутствие безопасности происходит главным образом из-за того, что вы, по сути, говорите ASP.NET: «Эй, не волнуйся ... Я справлюсь с этим». Взяв на себя опасные задачи, вы развертываете веревку, с помощью которой вы повеситесь (*). Microsoft вложила годы рабочей силы в структуру ASP.NET, и у нее есть довольно надежная встроенная система безопасности. Вы должны использовать это.

Аристос лает не на то дерево ... если кто-то может украсть «один простой cookie» у вашего пользователя / сайта, то он также может нарушить модель безопасности ASP.NET по умолчанию. Хотя это определенно вызывает озабоченность, на самом деле это не проблема.

* Например, допустим, вы создали «защищенный» объект Page с именем MySecurePage, который всегда проверяет, вошел ли пользователь и проверен ли он перед выполнением кода. Итак, однажды приходит разработчик Джо и забывает использовать MySecurePage, а вместо этого использует Page. К сожалению, вы только что устранили всю безопасность на этой странице. Это простой пример, но, надеюсь, вы получите представление о том, сколько существует разных способов это испортить.

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