Какие знаешь уязвимости

«Какие знаешь уязвимости» — вопрос из категории Безопасность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

  1. XSS (Cross-Site Scripting) — внедрение вредоносного кода в страницу.
    Пример:
    // Уязвимый код
    document.getElementById('output').innerHTML = userInput;
Защита: экранирование (`textContent`), CSP, санитизация (DOMPurify).
  1. CSRF (Cross-Site Request Forgery) — выполнение действий от имени пользователя без его ведома.
    Защита: CSRF-токены, SameSite cookies.

  2. CORS Misconfiguration — неправильная настройка заголовков CORS, позволяющая доступ с любых доменов.
    Пример уязвимости:

    Access-Control-Allow-Origin: *
  1. Инъекции (SQL, NoSQL, Template) — передача небезопасных данных в запросы.
    Пример (NoSQL):
    // Уязвимый запрос
    db.users.find({ login: req.body.login });
  1. Утечка данных — например, через console.log, хранение токенов в localStorage.

  2. Clickjacking — наложение прозрачного iframe на кнопки для скрытого клика.
    Защита: заголовок X-Frame-Options: DENY.

  3. Небезопасные зависимости — использование устаревших пакетов с уязвимостями (проверка через npm audit).

Всегда: валидация, экранирование, HTTPS, принцип минимальных привилегий.