Выбор ответа Middle Безопасность веб-приложения обновлено

CSRF и API

Вопрос

Какой API уязвим к CSRF?

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

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

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

Коротко

Правильный ответ: API на сессионной cookie, если CSRF-проверка отключена. CSRF работает, потому что браузер автоматически прикладывает cookie к запросу на ваш домен, даже если запрос инициировал чужой сайт.

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

  1. API с токеном в заголовке Authorization: Bearer из localStorage
  2. API на сессионной cookie, если CSRF-проверка отключенаправильный ответ
  3. API, который принимает GET-запросы без изменения данных
  4. Любой API, раз он работает по HTTP без строгого HSTS

Разбор

CSRF работает, потому что браузер автоматически прикладывает cookie к запросу на ваш домен, даже если запрос инициировал чужой сайт. Заголовок Authorization браузер сам не добавляет, поэтому токен-авторизация к CSRF не уязвима (зато токен нужно защищать от XSS). Безопасные GET без побочных эффектов неинтересны атакующему. HTTPS от CSRF не защищает.

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

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

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