Как отказаться от сеанса службы приложений Azure после выхода из системы - PullRequest
1 голос
/ 31 мая 2019

У меня есть простое приложение ASP.NET, которое развернуто как служба приложений Azure. Приложение имеет aad в качестве метода аутентификации.

Аутентификация настроена на портале Azure с «Экспресс» режим управления (без кода для аутентификации, только конфигурация портала). Сама аутентификация работает нормально.

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

Следующая процедура показывает, как получить доступ к аутентифицированным данным с ранее сохраненным значением AppServiceAuthSession.

  1. Войдите в приложение с помощью aad (перейдите к https://[myapp].azurewebsites.net -> Вход в Azure AD -> без проблем)
  2. Сохранение значения cookie: AppServiceAuthSession
  3. Выйти, перейдя по адресу: https://[myapp].azurewebsites.net/.auth/logout
  4. Выполнить http get с ранее сохраненным значением cookie в следующем стиле: curl --cookie "AppServiceAuthSession=[value]" -X GET https://[myapp].azurewebsites.net
  5. Страница индекса извлекается с использованием ранее использованного значения cookie.

Как это предотвратить и как правильно отменить все данные сеанса при выходе из системы?

1 Ответ

1 голос
/ 04 июня 2019

Не имеет смысла "защищаться" от этого.

Злоумышленник уже взломал браузер пользователя и получил доступ к файлам cookie, хранящимся внутри. По определению этот cookie является секретом, подтверждающим идентичность HTTP-клиента. Если злоумышленник уже имеет к нему доступ, он уже может использовать его любым количеством способов по своему выбору, которые вы не сможете предотвратить или отличить от реального доступа пользователя к серверу на законных основаниях.

Единственное реальное решение - это использование HTTPS .

Справка:

https://en.wikipedia.org/wiki/Session_hijacking

https://en.wikipedia.org/wiki/HTTPS

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