Выбор ответа Middle Безопасность фронтенда спрашивают часто обновлено

Когда отправляется SameSite=Lax

Вопрос

Сессионная кука сайта bank.ru выставлена с SameSite=Lax. В каком случае браузер приложит её к запросу, начатому со страницы evil.ru?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Пользователь кликнул по обычной ссылке на https://bank.ru/. Lax отправляет куку только при навигации верхнего уровня безопасным методом (GET), то есть при переходе по ссылке.

Варианты ответа

  1. Скрытая форма с method="POST" отправляется на bank.ru/transfer
  2. fetch('https://bank.ru/api', { credentials: 'include' }) с evil.ru
  3. Картинка <img src="https://bank.ru/logout"> на странице evil.ru
  4. Пользователь кликнул по обычной ссылке на https://bank.ru/правильный ответ

Разбор

Lax отправляет куку только при навигации верхнего уровня безопасным методом (GET), то есть при переходе по ссылке. В межсайтовые POST-формы, fetch и подзапросы вроде картинок и iframe кука не попадает. Поэтому Lax закрывает классический CSRF через форму, но GET-запросы, меняющие состояние, остаются опасными.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме