Безопасность
Введение
Обеспечение безопасности - это неотъемлемая часть процесса разработки и общая ответственность команды. Нарушение данных требований может привести к утечке данных, финансовым потерям, компрометации инфраструктуры и подрыву доверия пользователей.
Важно помнить: Frontend-код выполняется в браузере пользователя - среде, находящейся вне контроля разработчика. Любой код, данные и состояние на клиенте могут быть прочитаны, изменены или подменены.
Основополагающие принципы
MUST: Нулевое доверие к данным
- Все данные извне (ввод пользователя, ответы сторонних API, URL-параметры, Client Storage, переменные окружения) должны считаться недоверенными
MUST: Валидация на клиенте ≠ Безопасность
- Это UX-мера для удобства пользователя
- Она не заменяет и не отменяет проверки на стороне сервера
MUST: Клиент - не доверенная зона
- Front-end никогда не является доверенной стороной системы
Обязательные материалы для изучения
Разделы документации
- XSS и рендеринг данных - Защита от межсайтового скриптинга, безопасный рендеринг HTML
- Хранение данных - Client-side storage, cookies, токены, PII
- Переменные окружения - Правила работы с environment variables
- Content Security Policy - Настройка CSP, защита от XSS
- Browser APIs - Безопасное использование postMessage и других APIs
- Логирование и ошибки - Безопасное логирование, source maps
- Безопасность зависимостей - Аудит пакетов, lock-файлы
- Code Review и автоматизация - Чек-листы, ESLint, CI/CD