Какие методы защиты от веб-уязвимостей важны на практике и чем они отличаются?
DOM и браузер
Методы защиты от веб-уязвимостей: экранирование/санитизация (XSS), CSP, `SameSite`/CSRF-токены (CSRF), безопасное хранение токенов, HTTPS, security-заголовки, валидация. Различаются тем, от какой угрозы защищают.
Методы и от чего защищают
Экранирование и санитизация вывода
Против XSS: textContent вместо innerHTML, автоэкранирование React/Vue, DOMPurify для HTML.
Content-Security-Policy (CSP)
Против XSS и инъекций: ограничивает источники скриптов/ресурсов, блокирует внедрённые скрипты.
SameSite cookie + CSRF-токены
Против CSRF: cookie не шлётся кросс-сайт (SameSite), непредсказуемый токен в запросе.
Безопасное хранение токенов
Против кражи токенов: HttpOnly cookie / память, не localStorage.
HTTPS / HSTS
Против MITM: шифрование трафика, принудительный HTTPS.
X-Frame-Options / frame-ancestors
Против clickjacking: запрет встраивания в iframe.
Валидация на сервере
Против инъекций и некорректных данных: параметризованные запросы, проверка ввода.
Аудит зависимостей
Против уязвимых пакетов: npm audit, обновления.
Различия
Каждый метод — против конкретной угрозы:
- Ввод → экранирование, CSP, валидация.
- Межсайтовые →
SameSite, X-Frame-Options. - Хранение → HttpOnly.
- Транспорт → HTTPS.
Принцип
Defense in depth — несколько слоёв. Ориентир — OWASP Top 10.
Коротко для собеседования
Методы защиты: экранирование/санитизация + CSP (XSS), SameSite/CSRF-токены (CSRF), безопасное хранение токенов — HttpOnly/память (кража), HTTPS/HSTS (MITM), X-Frame-Options (clickjacking), валидация на сервере (инъекции), аудит зависимостей. Каждый — против конкретной угрозы; вместе дают defense in depth (OWASP Top 10).