Как закрывал уязвимости?
DOM и браузер
Уязвимости закрывают, устраняя причину: экранирование ввода против XSS, `SameSite`/токены против CSRF, параметризованные запросы против инъекций, безопасное хранение токенов, обновление зависимостей и security-заголовки.
Как закрывают основные уязвимости
XSS
- Экранировать вывод (
textContent, неinnerHTML). - Автоэкранирование React/Vue, санитизация (DOMPurify).
- CSP — блокирует внедрённые скрипты.
CSRF
- SameSite cookie, CSRF-токены, проверка Origin.
Инъекции (SQL)
- Параметризованные запросы, ORM, валидация.
Небезопасная авторизация / IDOR
- Проверка прав на каждый ресурс, хеширование паролей, короткие токены.
Небезопасное хранение
- Токены в памяти/
HttpOnlycookie, не в localStorage.
Clickjacking
X-Frame-Options: DENY,frame-ancestors.
Уязвимые зависимости
npm audit, обновление пакетов.
Утечка секретов
- Env-переменные, секрет-хранилища, не коммитить.
Процесс
- Найти (аудит, сканеры, ревью, pen-test).
- Оценить критичность.
- Устранить причину.
- Проверить и покрыть тестом.
- Мониторить (Sentry, логи).
Ориентир
OWASP Top 10 — чеклист основных уязвимостей и защит.
Коротко для собеседования
Уязвимости закрывают по причинам: XSS — экранирование/CSP/DOMPurify; CSRF — SameSite/токены; инъекции — параметризованные запросы; авторизация/IDOR — проверка прав, хеш паролей; хранение — память/HttpOnly; clickjacking — X-Frame-Options; зависимости — npm audit. Процесс: найти → оценить → устранить → проверить → мониторить (OWASP Top 10).