Как бороться с уязвимостями внутри браузеров?
DOM и браузер
С уязвимостями в браузере борются: экранированием ввода (XSS), CSP, `SameSite` cookie (CSRF), HTTPS, безопасным хранением токенов, security-заголовками и аудитом зависимостей.
Основные меры
Против XSS
- Экранировать вывод (
textContent, неinnerHTML). - Автоэкранирование React/Vue, избегать
dangerouslySetInnerHTML. - Санитизация HTML (DOMPurify).
- CSP — блокирует внедрённые скрипты.
Против CSRF
- SameSite cookie (
Lax/Strict). - CSRF-токены.
- Проверка Origin.
Безопасное хранение токенов
- Access — в памяти, refresh — в
HttpOnlycookie. - Не в localStorage (XSS).
Транспорт
- HTTPS — защита от перехвата (MITM).
- HSTS — принудительный HTTPS.
Security-заголовки
Content-Security-Policy,X-Frame-Options(clickjacking),X-Content-Type-Options.
Зависимости
- Аудит (
npm audit), обновление уязвимых пакетов.
Общий принцип
- Не доверять клиентскому вводу — валидировать на сервере.
- Принцип наименьших привилегий.
- Ориентир — OWASP Top 10.
Коротко для собеседования
С браузерными уязвимостями борются: против XSS (экранирование, CSP, DOMPurify), против CSRF (SameSite, токены), безопасное хранение токенов (память/HttpOnly), HTTPS/HSTS, security-заголовки (CSP, X-Frame-Options), аудит зависимостей. Общее — валидация на сервере и принцип наименьших привилегий (OWASP Top 10).
Подробнее: OWASP Top 10