Безопасно ли хранить информацию в Session? ASP.Net MVC, C#

392
16 мая 2017, 01:14

Добрый день, граждане! Работаю, вот, с ASP.Net. Имеется здесь объект, представляющий текущую сессию пользователя, в него можно записывать информацию любых видов и получать по ключу (короче, нечто вроде Dictionary). Но вот безопасно ли это делать? Может ли пользователь перехватить оттуда хранимую информацию? И, если да, какие есть аналоги?

Answer 1

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

Безопасно ли это? Конечно нет, но безопаснее куков. Все что передается пользователю от сервера или к серверу можно перехватить иди даже проще случай, например, пользователь может скопировать идентификатор сессии и передать его другому человеку.

Главное отличие сессии от куков это то, что при использовании сессий вся информация хранится на сервере, а у клиента имеется только идентификатор. У куков вся информация хранится у клиента.

Так же сессии хранятся определенное количество времени. Настраивается на веб-сервере. Например, если по истечении 20 минут не было обращения, то сессия автоматически удаляется.

Сеансы поддерживают объекты любого типа, включая специальные, создаваемые самим разработчиком типы данных. Управление сеансом не является частью HTTP-стандарта. Поэтому для отслеживания информации сеанса и ее привязки к соответствующему ответу ASP.NET приходится выполнять дополнительную работу. Для отслеживания сеанса используется уникальный 120-битовый идентификатор, который генерируется по патентованному алгоритму. Этот идентификатор является единственным фрагментом информации, который передается между веб-сервером и клиентом.

Так же можно выбрать где хранить объекты сессии. Это может быть объект в памяти, таблицы в б/д с специальным названием ASPState или Windows-служба.

Подробную информацию о сессиях, как их использовать, настроить или выбрать метод хранения можно узнать на ProfessorWeb

READ ALSO
Как очистить treeView?

Как очистить treeView?

В treeView создаётся дерево глубиной 2-3 уровня

421
Работа cmd с rdp C#/C++

Работа cmd с rdp C#/C++

Как подключится по RDP в WAN и выполнить какой-нибудь код? например убить процесс

376
перегрузка оператора ввода

перегрузка оператора ввода

Как можно реализовать нижеуказанный код на C#Пример кода на C++:

266
C# ASP,NET WebForms Заполнение полей html формы

C# ASP,NET WebForms Заполнение полей html формы

Есть ли какая то возможность инициализировать значение полей стандартных HTML-контролов из C# кода в момент загрузки страницы?

376