У меня есть приложение с включенным SSO (Single-on) с защитой CSRF.
- Войдите в приложение, которое создает новый сеанс (S1) и новый токен CSRF (C1)
- Откройте другую вкладку в том же браузере и снова войдите в приложение. Он сохранит тот же сеанс и токен CSRF
- Теперь выйдите из системы и войдите в приложение на второй вкладке. Теперь он создаст новый сеанс (S2) и новый токен (C2)
- Поскольку SSO включен, на первой вкладке все еще есть последний сеанс (S2), но в запросе имеется старый токен (C1).
- Когда вы выполняете любой запрос POST на первой вкладке, в результате ошибка доступа к CSRF приводит к несоответствию в токенах csrf. В запросе есть старый токен (C1), а в сеансе - новый токен (C2).
Это не настоящая атака CSRF. Итак, как мы можем справиться с этой ошибочно-положительной проблемой csrf?