← Все навыки

Веб-безопасность для фронтенда: XSS, CSRF и OAuth2

курс по веб-безопасности для фронтендеров уровня Middle-, готовящий к техническим собеседованиям. Студент научится находить и закрывать типовые уязвимости клиента — XSS, CSRF, небезопасную работу с токенами — и грамотно выстраивать аутентификацию через OAuth2/OIDC.

5 модулей, 11 тем Middle- Индивидуально с ментором

Программа

Вводный модуль

  • О курсе и как с ним работать

Граница доверия: аутентификация и авторизация

  • Лекция 1.1. «Я назначу себя админом»: клиент как недоверенная среда
  • Лекция 1.2. Аутентификация: сессии, JWT, access/refresh — вид с клиента
  • Лекция 1.3. Авторизация: RBAC честно, на двух сторонах

Инъекции в браузере: XSS, санитайзинг, CSP

  • Лекция 2.1. XSS: векторы и санитайзинг
  • Лекция 2.2. CSP: последний рубеж эшелонированной защиты
  • Лекция 2.3. CSRF, SameSite и соседи

Сеть, платформа, цепочка поставок

  • Лекция 3.1. Same-Origin Policy и CORS
  • Лекция 3.2. HTTPS и TLS для фронтендера
  • Лекция 3.3. Supply chain, OWASP и чеклист на собес

Вопросы с собеседований

  • Вопросы с собеседований по темам курса

Что разбираем

  • Модель угроз фронтенда и same-origin policy
  • XSS (stored/reflected/DOM-based), экранирование, Content Security Policy (CSP), опасность dangerouslySetInnerHTML/innerHTML
  • CSRF — механика атаки, SameSite-cookie, CSRF-токены, double submit
  • CORS — preflight, credentials, типичные ошибки конфигурации
  • Безопасное хранение токенов (httpOnly-cookie vs localStorage и почему не localStorage), XSS-кража токенов
  • Аутентификация и авторизация — сессии vs JWT, устройство JWT (подпись, exp), refresh-токены
  • OAuth2 и OpenID Connect — Authorization Code Flow + PKCE, роли клиента
  • Clickjacking и X-Frame-Options/frame-ancestors
  • Supply-chain риски фронтенда (зависимости, integrity), секреты в бандле
  • HTTPS/TLS, secure-cookies, HSTS

Практика

  • Воспроизвести reflected и DOM-based XSS в учебном приложении и закрыть их экранированием и CSP
  • Показать опасность innerHTML/dangerouslySetInnerHTML и переписать на безопасный вывод
  • Провести CSRF-атаку на форму и защититься через SameSite-cookie и CSRF-токен
  • Настроить CORS с credentials и разобрать, почему Access-Control-Allow-Origin: * несовместим с куками
  • Сравнить хранение токена в localStorage и httpOnly-cookie, украсть токен из localStorage через XSS
  • Разобрать структуру JWT, проверить подпись и exp, реализовать поток с refresh-токеном
  • Пройти Authorization Code Flow + PKCE на учебном OAuth2-провайдере
  • Защититься от clickjacking через frame-ancestors/X-Frame-Options
  • Проверить зависимости на уязвимости (audit) и найти секрет, случайно попавший в бандл
  • Составить чек-лист безопасности фронтенда к релизу

Как проходит обучение

  • Занятия один на один с ментором под ваш темп и пробелы
  • Материалы курса открываются в личном кабинете, практику разбираете на встречах
  • Программа собирается под цель: подготовка к собеседованию или рабочая задача