Я задаюсь вопросом, как предотвратить нападения фиксации Сессии в ASP.NET (см. http://en.wikipedia.org/wiki/Session_fixation),
Мой подход был бы к этому, должен будет обычно генерировать и выпускать новый идентификатор сессии каждый раз, когда кто-то входит в систему. Но находится на одном уровне это управления, возможного на земле ASP.NET?
Покопался в этом вопросе. Лучший способ предотвратить атаки фиксации сеанса в любом веб-приложении - это выдавать новый идентификатор сеанса, когда пользователь входит в систему.
В ASP.NET Session.Abandon() не достаточно для этой задачи. Microsoft утверждает в http://support.microsoft.com/kb/899918, что: ""При отказе от сеанса куки идентификатора сеанса не удаляются из браузера пользователя". Поэтому, как только сессия была завершена, любые новые запросы к тому же приложению будут использовать тот же идентификатор сессии, но будут иметь новый экземпляр состояния сессии."
Исправление ошибки было запрошено на https://connect.microsoft.com/feedback/viewfeedback.aspx?FeedbackID=143361&wa=wsignin1.0&siteid=210#details
Существует обходной путь для обеспечения генерации новых идентификаторов сессии, подробно описанный на http://support.microsoft.com/kb/899918, который включает вызов Session.Abandon и последующую очистку куки идентификатора сессии.
Было бы лучше, если бы ASP.NET не полагался на разработчиков.
Если я Полагаю, вы говорите о ... http://en.wikipedia.org/wiki/Session_fixation . Короткий ответ - да, у вас есть много способов защитить свой файл cookie. Вы не должны использовать сеанс без файлов cookie, и пока вы используете сеансы, убедитесь, что вы также явно защитили файл cookie.
Прочтите эту статью ... http://blogs.msdn.com/rahulso/archive/2007/06/19/cookies-case-study-with-ssl-and-frames-classic-asp .aspx
Надеюсь, это поможет ...
Он генерирует новый идентификатор сеанса, когда пользователь входит в систему и завершает сеанс, когда истекает тайм-аут, или пользователь уходит / закрывает браузер. И вы можете программно убить его с помощью Abandon () или удалить записи с помощью Remove ().
Я не уверен, в чем проблема?