Jaký je nejlepší způsob, jak zabránit útokům XSS?

zranitelnosti skriptování mezi stránkami byly útočníky využívány Od počátku roku 2000 a XSS je na seznamu OWASP Top 10 kritických bezpečnostních rizik pro webové aplikace počínaje rokem 2004. Mnoho vývojářů, správců systému a dokonce i některých penetračních testerů to však stále nebere vážně. Abyste se stali efektivním hackerem nebo obráncem webových aplikací, musíte pochopit základy toho, jak zabránit útokům XSS.

XSS útoky jsou stále problém

Cross-site scripting je typ zranitelnosti webové aplikace, která umožňuje útočníkům vložit a spustit škodlivý kód na straně klienta v prohlížeči oběti v rámci legitimní webové aplikace.

dopad a závažnost úspěšných útoků XSS se mohou lišit. Útoky XSS by mohly mít za následek únos relace, ukradené žetony, ukradené soubory cookie relace a útoky na padělání žádostí mezi weby. Tyto útoky mohou vést k ohrožení uživatelských účtů.

úspěšný útok XSS může útočníkovi také umožnit používat ukradené nebo padělané soubory cookie k vydávání se za platné uživatele. V případech, kdy má platný uživatel administrátorská práva v rámci aplikace, může útočník tato oprávnění použít ke změně stránek nebo ke vzdálenému spuštění kódu na straně serveru aplikace.

typy útoků XSS

existují tři typy útoků XSS: uložené, odrážené a dokumentované objektové modely (DOM).

  1. uložený útok XSS umožňuje útočníkovi vložit škodlivý skript do zranitelné stránky, který se poté provede, když oběť zobrazí stránku. Uložený XSS je považován za nejškodlivější typ útoku XSS. Například když útočník injektuje škodlivé užitečné zatížení JavaScriptu přímo do zranitelné webové aplikace, webový prohlížeč uloží Vložené užitečné zatížení JavaScriptu. Poté, pokaždé, když oběť navštíví tento web nebo webovou aplikaci, je škodlivý kód spuštěn.
  2. k odraženému útoku XSS dochází, když je škodlivé užitečné zatížení vloženo do odkazu a aktivováno pouze tehdy, když uživatel klikne na odkaz. Zde se škodlivé užitečné zatížení neukládá, ale zobrazuje se pouze na webové stránce ve formě URL nebo POST dat.
  3. zranitelnost XSS založená na DOM vzniká, když se DOM používá ke generování dynamického obsahu obsahujícího vstup uživatele, který lze zpracovat bez kontroly. Tento druh útoku se provádí pomocí JavaScriptu v prohlížeči oběti

prevence útoků XSS

aby se zabránilo útokům XSS, musí vývojáři ověřit vstup uživatele správným filtrováním nebo únikem speciálních znaků a poté kódováním výstupu, aby se zabránilo uloženým útokům XSS a odrazeným útokům XSS. Následující speciální znaky by měly být vždy odfiltrovány nebo uniknuty, aby se zabránilo jejich škodlivému zneužití:

<

>

)

(

&

vývojáři by měli ověřit vstup uživatele — sources — a kódovat výstup — sinks — aby se zabránilo útokům XSS založeným na DOM. Vlastnost vstupního zdroje je místo, odkud DOM čte, a zdroj je místo, kde útočník může vložit škodlivý kód, aby zneužil zranitelnost XSS. Je třeba se vyhnout následujícím zdrojovým vlastnostem:

  • URL
  • documentURI
  • location
  • href
  • search
  • hash

dřezy jsou body, kde DOM provádí škodlivé znaky nebo kód ze vstupu — zdroj — který se zase dostane na webovou stránku. Těmto dřezům je třeba se vyhnout, aby se zabránilo útokům XSS založeným na odmítnutí služby:

  • innerHTML
  • outerHTML
  • napište

pokud chcete lépe porozumět a předcházet útokům XSS, Google vytvořil herní web XSS, aby zjistil, jak tyto útoky fungují a jak jim lépe předcházet. Projekt Mutillidae 2 od OWASP také nabízí učební cíl pro profesionály v oblasti webové bezpečnosti, aby zostřili svou obranu proti útokům XSS.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.