Взлом переменных сессии в Asp.NET - PullRequest
5 голосов
/ 05 июня 2009

Можно ли взломать чьи-то переменные сеанса и создать нового теневого пользователя?

Каковы общие способы избежать таких сюрпризов?

Установка SSL-сертификата или ....?

Ответы [ 2 ]

13 голосов
/ 05 июня 2009

Краткий ответ ... это зависит.

Сеанс в ASP.NET может храниться различными способами (InProc / SQL Server / State Server) и т. Д. Еще одна вещь, на которую стоит обратить внимание, это то, как поддерживается сеанс клиента (значение строки запроса, куки и т. Д. )

Как следует из плаката в этом ответе

Можем ли мы взломать сайт, который просто хранит имя пользователя в качестве переменной сеанса?

Единственное, что вы можете сделать, когда вы аутентифицируете пользователя и сохраните его имя в сеансе, это также сохранить некоторую другую информацию о нем. например Их UserAgentString, их IP-адрес и, если другой IP-адрес или UserAgentString пытались взаимодействовать с сеансом, вы можете сделать его недействительным.

1 голос
/ 05 июня 2009

Все возможно, однако по умолчанию это сложно.

Как правило, вы захватываете сеанс путем кражи cookie сеанса и воссоздания его на другом компьютере. Однако для этого веб-сайт должен быть уязвим для межсайтовых сценариев (которые можно уменьшить с помощью Server.HtmlEncode, когда вы возвращаете ввод пользователя). Если вы оказались уязвимы, cookie-файл сеанса ASP.NET помечается как HTTP Only, что означает, что, если браузер поддерживает его, он недоступен для доступа из сценариев на стороне клиента (хотя Safari игнорирует этот параметр).

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