Перейти к основному содержимому

Безопасность и хранение

Быстрый переход к обучению

  1. Безопасность и хранение — учебный модуль
  2. Все учебные модули

Что нужно знать

  1. Authentication vs Authorization.
  2. Access token, refresh token, lifecycle и ротация.
  3. Cookies: HttpOnly, Secure, SameSite, domain/path.
  4. Browser storage: localStorage, sessionStorage, IndexedDB.
  5. Базовые угрозы: XSS, CSRF, token leakage, replay.

Что уметь объяснить на собеседовании

  1. Почему хранение токена в localStorage имеет риски при XSS.
  2. Как работает refresh-flow и где в нем типично возникают баги.
  3. Когда уместны cookie-based сессии, а когда bearer-token подход.
  4. Какой минимальный security baseline нужен frontend-команде.

Грейд-фокус

  1. Junior: знать базовые атрибуты cookies и отличия storage-механизмов.
  2. Middle: проектировать устойчивый auth-flow и обработку 401/403.
  3. Senior: выбирать security-модель под продукт и регуляторные ограничения.

Глубокие кейсы собеседования

  1. Бесконечный цикл refresh: каждый 401 запускает новый refresh, запросы зацикливаются. Сильный ответ: очередь запросов + единый refresh lock + kill-condition.
  2. Выход пользователя, но токен еще жив: нужна стратегия revoke/blacklist/short TTL и очистка клиентского состояния.
  3. CSRF инцидент: cookie отправляется автоматически, поэтому нужны SameSite/CSRF token/проверка origin.

Практический минимум

  1. Нарисовать схему login -> refresh -> logout.
  2. Реализовать централизованный обработчик 401 без гонок.
  3. Подготовить таблицу рисков для разных вариантов хранения токена.

Типовые ловушки

  1. Утверждать, что JWT сам по себе безопасен.
  2. Не различать transport security и application security.
  3. Не учитывать инвалидацию токена при logout.

Self-review перед собеседованием

  1. Я могу объяснить token flow на конкретном примере.
  2. Я понимаю разницу XSS и CSRF и способы защиты.
  3. Я умею описать, что делать при компрометации токена.

Связанные материалы

  1. Web и сеть (HTTP, DNS, CORS, API)
  2. JavaScript
  3. Общие вопросы (hub)