awesome-everything EN
↑ Обратно к восхождению

Безопасность

CSRF: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту — ambient authority, бреши SameSite, побочные эффекты на GET, токен-паттерны, проверка Origin и почему CORS — не защита от CSRF.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов поперёк всего юнита. Каждый отражает решение, которое ты принимаешь, ревьюя реальный дизайн аутентификации — не определение для заучивания, а компромисс, который надо взвесить, когда эндпоинт меняет состояние.

Цель

Убедись, что связываешь ambient authority, намеренные бреши SameSite, токен-паттерны и проверки Origin — тот синтез, к которому вёл урок, и ловушку, когда CORS принимают за защиту от CSRF.

Викторина

Ревьюер заявляет: «наша сессионная кука HttpOnly и Secure, значит, мы защищены от CSRF». Почему это рассуждение неверно?

Викторина

Сессионные куки — SameSite=Lax. Скрытая форма на evil.com авто-сабмитит кросс-сайтовый POST /transfer. Что произойдёт и какой эндпоинт реально остаётся уязвим?

Викторина

Почему «никогда не меняй состояние на GET-запросе» — реальное правило безопасности, а не просто вкусовщина REST?

Викторина

Stateless JSON API использует обычный double-submit cookie: случайное значение в куке, которое надо эхом вернуть в заголовке. Атакующий контролирует поддомен с XSS. Почему он обходит защиту и какой фикс?

Викторина

Команда добавляет строгую CORS-политику (никаких чужих origin) и делает вывод, что её эндпоинты с изменением состояния теперь защищены от CSRF. Где рассуждение ломается?

Викторина

Атакующий логинит браузер жертвы в АККАУНТ АТАКУЮЩЕГО (login CSRF), и дальнейшая активность жертвы пишется под личностью атакующего. Какая защита это закрывает и почему обычное рассуждение неполно?

Итог

Сквозная линия юнита — одна цепочка: куки — это ambient authority, поэтому браузер шлёт твою сессию на любой запрос к твоему origin — включая подделанную запись. SameSite=Lax срезал поверхность кросс-сайтового POST в 2020, но оставил побочные эффекты на GET, SameSite=None и окно 120с Lax+POST, так что это defense-in-depth, а не замок. Реальная защита слоит неугадываемый токен (synchronizer для stateful-приложений, HMAC-подписанный double-submit для stateless API), проверку Origin/Referer и правило, что мутации не едут на GET. И две ловушки повторяются: HttpOnly/Secure и CORS оба ощущаются как защита от CSRF, но касаются чтения, а не подделанной записи, которая уже выполнилась.

Продолжить восхождение ↑CSRF: тест на свободное воспроизведение
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.