Выбор ответа Junior CSRF, SameSite и CORS обновлено

Изменение состояния через GET

Вопрос

Удаление аккаунта сделано через GET /account/delete. Почему SameSite=Lax не защитит от CSRF?

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

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

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

Коротко

Правильный ответ: Lax при навигации верхнего уровня GET прикладывает cookie, и ссылка удалит аккаунт. Безопасные методы должны быть безопасны по смыслу: GET не меняет состояние.

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

  1. Lax при навигации верхнего уровня GET прикладывает cookie, и ссылка удалит аккаунтправильный ответ
  2. Защитит: Lax не прикладывает cookie ни к каким GET-запросам со сторонних сайтов
  3. Lax действует только на HTTP, а на HTTPS браузер прикладывает cookie всегда
  4. Lax защищает от XSS и кражи cookie, а от CSRF защищает только флаг HttpOnly

Разбор

Безопасные методы должны быть безопасны по смыслу: GET не меняет состояние. При навигации по ссылке cookie с Lax отправится, и действие выполнится. Правильно: POST или DELETE с CSRF-защитой.

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

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

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