Viena iš labiausiai paplitusių svetainių pažeidžiamumo klasių vadinama „Kryžminių svetainių scenarijus“ arba „XSS“. Dėl XSS pažeidžiamumų vartotojas gali sukelti „JavaScript“ vykdymą. Yra keletas skirtingų XSS pažeidžiamumo variantų, kurių sunkumo laipsnis skiriasi.
Problema, kai užpuolikas gali vykdyti „JavaScript“ kitų vartotojų seansuose, yra ta, kad užpuolikas gali padaryti bet ką svetainėje, kurią mato aukos. Tai apima aukų nukreipimą į išorines svetaines, autentifikavimo žetonų vagystę ir mokėjimo informacijos stebėjimą.
Sunkiausia XSS pažeidžiamumo forma yra „Saugomas“ arba „Pastovus“ Cross-Site Scripting, čia užpuolikas gali sukurti XSS naudingąjį apkrovą ir tada jį pateikti, todėl jis išsaugomas duomenų bazėje. Duomenų bazėje išsaugotas XSS išnaudojimas gali turėti įtakos kitiems vartotojams per platų laikotarpį.
Kita kryžminio scenarijaus forma yra „Atspindėta“, šis tipas nėra išsaugomas jokiu būdu, o naudingoji apkrova įtraukiama į naršyklę. Paprastai šio tipo XSS yra sukčiavimo atakų dalis, kai užpuolikas bando apgauti auką spustelėti kenkėjišką nuorodą.
Paprastai daugumos XSS atakų naudingoji apkrova tam tikru momentu siunčiama į serverį, tačiau kai kurios atakos yra tik kliento pusės, niekada nesiunčiamos į serverį, o veikia tik kliento pusės JavaScript. Tai vadinama DOM pagrįsta XSS, nes ji lieka „JavaScript“ dokumento objekto modelyje arba DOM. Šio tipo pažeidžiamumą ypač sunku nustatyti ir pašalinti, nes serveris niekada nemato išnaudojimų, todėl jų negalima užregistruoti.
Istoriškai XSS pažeidžiamumų prevencijos metodas yra visų vartotojų pateiktų duomenų filtravimas, naudojant blokavimo sąrašus, kad būtų atmesti bet kokie „JavaScript“ pranešimai su reikšmingais simboliais ar žodžiais. Tai paskatino ginklavimosi varžybas ieškant filtro apėjimo būdų, tuo pačiu užkertant kelią kai kuriems teisėtiems naudotojų pareiškimams. Teisingas sprendimas yra naudoti HTML objektus vartotojo pateiktiems duomenims koduoti. Įjungus HTML objektų modulius, simboliai automatiškai užkoduojami tokiu formatu, kad naršyklė žinotų, kad jie turi būti rodomi kaip teisingi simboliai, bet nelaikomi kodu.