Я хотел бы узнать, какой идентификатор сессии, угоняя защиту встроен в текущую версию ASP.NET.
Я недавно видел эту очень информативную статью, которая объясняет, как безопасность сессии может быть улучшена путем реализации дополнительного слоя, который кодирует IP-адрес и заголовок агента пользователя в идентификатор сессии. Эти детали затем проверяются по каждому последующему запросу.
Кажется, что эта статья была написана для ASP.NET 1.1, таким образом, я хотел бы знать, встроено ли что-либо подобное теперь в ASP.NET. Имеет это все еще какую-либо выгоду для реализации такого дополнительного слоя?
Спасибо.
Посмотрите на этот фрагмент из документации Session Overview:
Значения System.Web.SessionState.HttpSessionState.SessionID отправляются открытым текстом, будь то в виде cookie или как часть URL. Злонамеренный пользователь может получить доступ к сессии другого пользователя, получив значение SessionID и включив его в запросы к серверу. Если вы храните конфиденциальную информацию в состоянии сессии, рекомендуется использовать SSL для шифрования любого обмена данными между браузером и сервером, включающего значение SessionID.
http://msdn.microsoft.com/en-us/library/ms178581.aspx
Мне кажется, это означает, что в Session не заложена безопасность, поэтому вам, вероятно, не следует использовать Session в качестве меры безопасности. Вместо этого я бы рекомендовал полагаться на безопасность ASP.NET (аутентификация, авторизация).
Вот статья из группы Patterns & Practices об общих рекомендациях по безопасности для ASP.NET.