Выбор ответа Junior CSRF, SameSite и CORS обновлено
Изменение состояния через GET
Вопрос
Удаление аккаунта сделано через GET /account/delete. Почему SameSite=Lax не защитит от CSRF?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Lax при навигации верхнего уровня GET прикладывает cookie, и ссылка удалит аккаунт. Безопасные методы должны быть безопасны по смыслу: GET не меняет состояние.
Варианты ответа
- Lax при навигации верхнего уровня GET прикладывает cookie, и ссылка удалит аккаунтправильный ответ
- Защитит: Lax не прикладывает cookie ни к каким GET-запросам со сторонних сайтов
- Lax действует только на HTTP, а на HTTPS браузер прикладывает cookie всегда
- Lax защищает от XSS и кражи cookie, а от CSRF защищает только флаг HttpOnly
Разбор
Безопасные методы должны быть безопасны по смыслу: GET не меняет состояние. При навигации по ссылке cookie с Lax отправится, и действие выполнится. Правильно: POST или DELETE с CSRF-защитой.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.