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

Как можно подменить скрипт?

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

Скрипт можно подменить через XSS (внедрение своего скрипта), компрометацию зависимости (supply chain), MITM (перехват без HTTPS), взлом CDN. Защита: CSP, SRI, HTTPS, аудит зависимостей.

Векторы подмены скрипта

XSS

Внедрение вредоносного скрипта через неэкранированный ввод:

element.innerHTML = userInput; // <script>...</script>

Защита: экранирование, CSP.

Компрометация зависимости (supply chain)

Вредоносный код в npm-пакете (взломанный или тайпсквоттинг):

Установили пакет → он содержит вредоносный код

Защита: аудит (npm audit), lock-файлы, проверка пакетов.

MITM (человек посередине)

Без HTTPS трафик перехватывают и подменяют скрипт по пути:

Защита: HTTPS, HSTS.

Взлом CDN / стороннего скрипта

Скрипт с чужого CDN подменён на источнике:

Защита: Subresource Integrity (SRI) — хеш проверяет целостность:

<script src="https://cdn.com/lib.js"
  integrity="sha384-..." crossorigin="anonymous"></script>

Если содержимое изменилось (хеш не совпал) — браузер не выполнит.

Compromised build / инъекция при сборке

Вредоносный код добавлен в процессе сборки/деплоя.

Защита (сводно)

  • CSP — script-src ограничивает источники скриптов.
  • SRI — проверка целостности сторонних скриптов.
  • HTTPS/HSTS — против MITM.
  • Аудит зависимостей — против supply chain.
  • Экранирование ввода — против XSS.

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

Скрипт подменяют через: XSS (внедрение — защита экранированием/CSP), компрометацию зависимости/supply chain (вредоносный npm-пакет — аудит, lock-файлы), MITM без HTTPS (перехват — HTTPS/HSTS), взлом CDN (сторонний скрипт — SRI, хеш целостности). Защита: CSP (script-src), SRI (integrity), HTTPS, аудит зависимостей, экранирование.

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