Obsah môže byť vrátený okamžite, uložený a servovaný neskôr, alebo zavedený cez nebezpečnú klientsku manipuláciu dokumentu. Vykonanie môže konať s originom stránky a prístupným kontextom používateľa, ovplyvňujúc zobrazený obsah, údaje alebo akcie.
Prevencia závisí od držania nedôveryhodných údajov mimo spustiteľných kontextov. Aplikácie majú používať bezpečné správanie frameworkov a sinks, uplatniť kontextovo-špecifické kódovanie výstupu a sanizovať obsah, keď používatelia majú zámerne povolené dodávať obmedzené markup.
Kľúčové body
Bežné formyReflektované XSS vracia nebezpečný vstup v odpovedi, uložené XSS servuje predtým uložený obsah a XSS založené na Document Object Model vzniká z nebezpečného klientského toku údajov a vykonávania.
Primárna prevenciaPreferovať templating a rozhrania prehliadača, ktoré zaobchádzajú s hodnotami ako s textom, kódovať výstup pre jeho presný kontext, validovať nebezpečné URL, vyhnúť sa nepotrebnému dynamickému vykonávaniu kódu a použiť udržiavané sanitery pre povolený markup.
ZadržanieAplikovať dobre navrhnutú Content Security Policy, chrániť citlivé cookies, minimalizovať vystavené údaje prehliadača a obmedziť skripty tretích strán ako hĺbkovú obranu namiesto náhrad za bezpečné zaobchádzanie s údajmi.
Dôležité obmedzenieValidácia vstupu, firewall webových aplikácií ani samotná Content Security Policy nedokáže pokryť každý kontext vykonávania alebo klientsku cestu. Same-origin politika prehliadača nebráni kódu, ktorý sama dôveryhodná stránka zaviedla.