Модуль 6 · Программирование · урок 3 из 4 · ~7 мин

🟨 JavaScript

Короткая выжимка урока бесплатного курса CyberStreak. Полный урок со слайдами, тестом и работой над ошибками — в Telegram.

Язык веба

JavaScript выполняется в каждом браузере и на серверах (Node.js). Без него не обходится ни один современный сайт — в том числе это приложение.

При чём тут безопасность: большинство веб-атак — XSS, CSRF, кража сессий — связаны с JavaScript. Чтобы понять и найти их, нужно читать JS-код.

Модель безопасности браузера

Браузер ограничивает JavaScript:

  • Same-Origin Policy — скрипт одного сайта не может читать данные другого;
  • CORS — сервер явно разрешает, какие сайты могут к нему обращаться;
  • Content Security Policy — сайт указывает, откуда можно загружать скрипты.

XSS опасен как раз тем, что чужой скрипт выполняется «от имени» сайта.

Опасные места

  • innerHTML и eval с данными пользователя — путь к XSS.
  • Хранение токенов там, откуда их легко украсть скриптом.
  • Проверки только на клиенте: любой может обойти их, отправив запрос напрямую. Проверять нужно на сервере.

Цепочка поставок npm

Проекты на JavaScript тянут сотни пакетов из npm. Уязвимый или вредоносный пакет — даже вложенный глубоко в зависимости — попадает в приложение.

Защита: фиксировать версии (lock-файл), проверять уязвимости (npm audit), не ставить пакеты с подозрительными названиями, минимизировать зависимости.

С чего начать

  1. Основы языка и работа с DOM в браузере.
  2. Инструменты разработчика браузера: консоль, вкладка «Сеть».
  3. Как устроены cookie, localStorage и заголовки безопасности.
  4. Учебные уязвимые приложения, например OWASP Juice Shop, чтобы увидеть XSS своими глазами — легально.

Главное за урок

  1. JavaScript — язык браузера и Node.js, основа веб-атак и защиты.
  2. Same-Origin Policy, CORS и CSP ограничивают скрипты.
  3. Проверяй всё на сервере и следи за зависимостями npm.

Источники

Что ещё в полном уроке

  • О чём урок
  • Где живёт JavaScript
  • Почему это важно для безопасности
  • Ключевые риски веб-клиента (и защита)
  • Node.js на сервере
  • Итог
  • Как это выглядит на практике
  • Типичные ошибки
  • Мини-лаборатория
  • Проверь себя
  • Тест из 5 вопросов с разбором каждого ответа
  • Практика «найди подозрительное»: разбор логов и писем как в SOC

Пройди урок целиком

Слайды с примерами, тест, работа над ошибками и огонёк серии. Бесплатно, прямо в Telegram.