Popis:Zranitelnost Cross-Site Scripting je založena na možnosti spustit vlastní kód Javascriptu v kontextu cílové aplikace, čímž se obejdou restrikce bezpečnostní politiky Same Origin Policy. Kód Javascriptu spuštěný ve webovém prohlížeči uživatele pak může přistupovat k libovolnému obsahu, který se nachází na stejné doméně, jako spuštěný skript. Díky tomu může takový skript měnit uživateli před očima obsah zobrazené webové stránky, číst z domény důvěrná data, nebo může vyplňovat a odesílat obsažené formuláře.
Aby bylo možné injektovat skript na cílovou doménu, je nutné, aby aplikace nedostatečně validovala vstup/výstup uživatelských dat a umožnila tak útočníkovi vložit metaznaky, které budou mít spuštění injektovaného kódu na svědomí.
Ve chvíli, kdy aplikace validuje uživatelská data bezchybně a útočník tak nemůže najít žádné slabé místo, jež by spuštění jeho kódu umožňilo, přichází na řadu sociotechnický útok nazvaný Self Cross-Site Scripting. Během něj útočník přesvědčí svou oběť, aby sama vložila kód Javascriptu do adresního řádku prohlížeče, nebo do jeho konzole. Takto vložený skript totiž také poběží v kontextu domény právě načtené webové stránky.
V historii se vyskytly například útoky směřující na uživatele sociální sítě Facebook, které uživatele lákaly na možnost krádeže cizích uživatelských FB účtů po spuštění připraveného skriptu ve své prohlížeči.
Pro znemožnění útoků tohoto typu stačí nedůvěřovat všem informacím a nikdy nevkládat do adresního řádku browseru nebo do konzole kódy, o jejichž funkčnosti nemáte stoprocentní povědomí. Nezapomínejte také, že pokud kód kopírujete z webu, tak tento kód nemusí obsahovat pouze to, co na webové stránce vidíte, viz útok Fake Copy Content.