Есть ли уязвимость?

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

Поведение

  1. Захожу под аккаунтом [email protected] в двух вкладках.
  2. В одной из вкладок выхожу из аккаунта и захожу под админом.
  3. В оставшейся вкладке ([email protected]) пробую загружать данные и совершать действия, в т.ч. на запись и могу это делать.

Т.е. получается я вышел, но сессия не завершилась.

Должно быть После выхода из аккаунта возможности осуществлять навигацию и делать действия быть не должно.

Как это работает под капотом:

1. Входим под аккакнтом 1 (А1) в первой вкладке

2. Дублируем вкладку, во второй вкладке видим юзера А1. На данном этапе:

  1. В localStorage (он общий для всех вкладок в рамках одного origin) сохранён токен А1

  2. В каждой вкладке уже запущено Vue-приложение и во внутренней js-переменной установлен токен А1 для всех запросов к серверу

3. Во второй вкладке выходим из аккаунта А1 и входим в другой аккаунт А2. На данном этапе:

  1. В localStorage для всех вкладок установлен токен пользователя А2

  2. В первой вкладке страница не обновлялась и по-прежнему внутри Vue установлен токен по умолчанию для юзера А1

  3. Во второй вкладке происходило обновление страницы и внутри Vue токен по умолчанию изменён на А2

  4. На данном этапе в первой вкладке действия выполняются под юзером А1, во второй - под А2

4. В первой вкладке обновляем страницу. На данном этапе:

  1. В первой вкладке заново загружается Vue-приложение. Оно видит, что в localStorage сохранён токен А2 (п 3.1)

  2. Приложение берёт этот токен и ставит его в свою внутреннюю переменную по умолчанию для всех запросов

  3. Теперь все действия выполняются от имени пользователя А2

  4. Во второй вкладке все по-прежнему и действия выполняются тоже от имени пользователя А2

Вопрос существует ли в таком подходе уязвимость?


Ответы (0 шт):