Какие уязвимости важны на практике и как их применять?
DOM и браузер
Важные уязвимости — XSS, CSRF, инъекции, небезопасная авторизация, clickjacking — и защита от каждой строится на валидации, экранировании и правильных заголовках безопасности.
Уязвимости и защита
XSS (межсайтовый скриптинг)
Внедрение чужого JS через неэкранированный ввод. Защита: экранирование вывода, автоэкранирование React/Vue, DOMPurify, CSP, HttpOnly cookie.
CSRF (подделка запросов)
Запрос от имени жертвы через её cookie. Защита: SameSite cookie, CSRF-токены, проверка Origin.
SQL/NoSQL инъекции
Вредоносный код в запросе к БД. Защита: параметризованные запросы, ORM, валидация ввода.
Небезопасная авторизация / IDOR
Доступ к чужим ресурсам, слабое хранение токенов. Защита: проверка прав на каждый ресурс, хеширование паролей, короткие токены, HttpOnly.
Clickjacking
Обёртка сайта в невидимый iframe. Защита: X-Frame-Options: DENY, frame-ancestors.
Прочее
- MITM → HTTPS.
- Уязвимые зависимости → аудит (
npm audit). - Утечка секретов → не хранить в коде/логах.
Общие принципы
- Не доверять клиентскому вводу, валидировать на сервере.
- Принцип наименьших привилегий.
- HTTPS, security-заголовки (CSP, HSTS), актуальные зависимости.
Коротко для собеседования
Уязвимости и защита: XSS (экранирование, CSP, DOMPurify), CSRF (SameSite, токены), инъекции (параметризованные запросы), небезопасная авторизация/IDOR (проверка прав, хеш паролей), clickjacking (X-Frame-Options). Общее — валидация на сервере, HTTPS, security-заголовки, аудит зависимостей (OWASP Top 10).
Подробнее: OWASP Top 10