Всплывающее окно с iframe: одновременное использование нескольких @ Html.AntiForgeryToken () - PullRequest
0 голосов
/ 26 июня 2018

У меня есть страница, которая при загрузке генерирует токен защиты от подделки с @Html.AntiForgeryToken(). Это происходит в файле макета. Страница может открыть несколько всплывающих окон с iframe. Этот iframe генерирует свой собственный токен защиты от подделки с @Html.AntiForgeryToken().

На странице, где вы можете открыть всплывающее окно, пользователь может выйти из системы. Запрос на выход из системы включает маркер защиты от подделки, созданный при загрузке этой страницы.

Учитывая, что я делаю это:

  • Загрузить страницу, где можно открыть всплывающие окна (сгенерирован токен защиты от подделки)
  • Открыть всплывающее окно с помощью iframe (в iframe создается новый токен защиты от подделки)
  • Выйти со страницы, где я могу открыть всплывающие окна

Выход завершен успешно. Это почему? Разве новый токен не заменит старый на сервере? Или токен защиты от подделки, который я проверяю, сохраняется в браузере как файл cookie, чтобы при передаче значения токена защиты от подделки в запрос на выход из браузера браузер также передавал соответствующий файл cookie токена подделки, с которым я сравниваю?

Я нахожусь на ASP.NET 4.5.2 и MVC 5.2.3.

1 Ответ

0 голосов
/ 27 июня 2018

Похоже, что оно сохранено в cookie. Это , а не из статьи для .NET Core, хотя может работать там же.

В ASP.NET Web Stack Runtime используется вариант токена синхронизатора. шаблон для защиты от атак XSRF. Общая форма шаблон токена синхронизатора состоит в том, что два токена анти-XSRF отправляется на сервер с каждым HTTP POST (в дополнение к токен аутентификации): один токен как cookie, а другой как форма значение. Значения токенов, сгенерированные средой выполнения ASP.NET, не являются детерминированный или предсказуемый злоумышленником. Когда токены после отправки сервер разрешит выполнение запроса, только если оба токены проходят проверку сравнения.

...