JavaScript hijacking

JavaScript Hijacking umožňuje útočníkům získat citlivá data z webových aplikací zneužitím nedostatečného zabezpečení.

 


 

What is JavaScript Hijacking?

JavaScript Hijacking je typ útoku na webové aplikace, při kterém útočník zneužívá slabiny v JavaScriptu a špatně zabezpečeném přístupu k datům. Cílem útoku je načíst a zneužít citlivá data, ke kterým by útočník neměl mít přístup – například informace o uživatelském účtu, historii nákupů nebo firemní záznamy.

 

How JavaScript Hijacking appears in practice

Examples of common situations:

  • Útočník využije slabinu v CORS nebo JSONP a získá odpověď z API, které by mělo být dostupné jen přihlášeným uživatelům.
  • Webová aplikace neověřuje původ požadavku (absence CSRF ochrany) a umožní útočníkovi číst data načtená do tagu <script>.
  • Citlivé firemní údaje jsou dostupné bez dostatečné autentizace a jsou přístupné např. v JavaScriptovém objektu na stránce.
  • Útočník podstrčí iframe nebo jiný prvek na svůj web, který načítá data z cílové domény pomocí skriptů.

 

Tyto scénáře ukazují, jak snadno může být zneužit nedostatečně chráněný přístup k datům. Zvlášť ohrožené jsou aplikace postavené na starších technologiích (např. JSONP), které nedostatečně kontrolují kontext, ze kterého požadavek přichází.

 

How JavaScript Hijackingem and related terms?

  • JavaScript Hijacking – krádež dat z webové aplikace přes skriptové zranitelnosti.
  • Cross-Site Scripting (XSS) – injekce škodlivého kódu do webové stránky, který se spustí v prohlížeči uživatele.
  • Cross-Site Request Forgery (CSRF) – podvržení požadavku jménem uživatele bez jeho vědomí.

 

Tyto útoky se mohou navzájem kombinovat a zneužívat stejnou základní chybu: nedostatečnou kontrolu vstupů a výstupů. Rozdíly mezi nimi jsou ale důležité při nastavování konkrétních ochranných opatření.

 

How to protect your business from JavaScript Hijacking odhalit nebo mu předejít ve vaší firmě

Recommended steps:

  1. Nepoužívejte zastaralé techniky jako JSONP – přejděte na CORS s přesně definovaným whitelistem.
  2. Zavádějte ochranu proti CSRF (např. pomocí tokenů nebo hlaviček).
  3. Zabezpečte API – kontrolujte oprávnění na každém endpointu, nejen na úrovni frontendu.
  4. Zakázat MIME-type sniffing a omezit možnost spouštění skriptů z nedůvěryhodných domén (Content Security Policy).
  5. Testujte zranitelnosti pomocí penetračních testů nebo nástrojů typu OWASP ZAP.

 

Mnoho firem podceňuje zabezpečení webových aplikací a věří, že „když je něco na frontendu, je to bezpečné“. JavaScript Hijacking ale ukazuje opak – nedostatečně chráněná API nebo data v prohlížeči mohou být snadným cílem. Prevence je relativně jednoduchá, pokud je řešena už při návrhu aplikace.