Viena no visbiežāk sastopamajām vietņu ievainojamības klasēm tiek saukta par “Starpvietņu skriptēšanu” vai “XSS”. XSS ievainojamība ir vieta, kur lietotājs var izraisīt JavaScript izpildi. Ir vairāki dažādi XSS ievainojamības varianti ar atšķirīgu smaguma pakāpi.
Problēma ar to, ka uzbrucējs var izpildīt JavaScript citu lietotāju sesijās, ir tāda, ka uzbrucējs pēc tam var darīt jebko ar vietni, ko redz upuri. Tas ietver upuru novirzīšanu uz ārējām vietnēm, autentifikācijas marķieru zādzību un maksājumu informācijas uzraudzību.
Smagākā XSS ievainojamības forma ir “saglabāta” vai “pastāvīga” starpvietņu skriptēšana. uzbrucējs var izveidot XSS lietderīgo slodzi un pēc tam to iesniegt, tāpēc tā tiek saglabāta datu bāzē. Ja XSS izmantošana ir saglabāta datu bāzē, tā var ietekmēt citus lietotājus plašā laika periodā.
Cits starpvietņu skriptēšanas veids ir “Atspoguļots”, šis veids netiek saglabāts nevienā brīdī, tā vietā pārlūkprogrammā tiek iekļauta lietderīgā slodze. Parasti šāda veida XSS ir daļa no pikšķerēšanas uzbrukumiem, kad uzbrucējs mēģina apmānīt upuri, lai tas noklikšķinātu uz ļaunprātīgas saites.
Parasti lielākajai daļai XSS uzbrukumu lietderīgā slodze kādā brīdī tiek nosūtīta uz serveri, bet daži uzbrukumi tiek nosūtīti tīri klienta pusē, nekad netiek nosūtīta uz serveri un tā vietā ietekmē tikai klienta pusi JavaScript. To sauc par DOM balstītu XSS, jo tas paliek JavaScript dokumenta objektu modelī jeb DOM. Šāda veida ievainojamību ir īpaši grūti identificēt un novērst, jo serveris nekad neredz tos, un tāpēc tos nevar reģistrēt.
Vēsturiski XSS ievainojamību novēršanas paņēmiens ir filtrēt visus lietotāja iesniegtos datus, izmantojot bloķēšanas sarakstus, lai noraidītu jebkādus ziņojumus ar jēgpilnām rakstzīmēm vai vārdiem JavaScript. Tas izraisīja bruņošanās sacensību, meklējot filtra apiešanas ceļus, vienlaikus novēršot dažus likumīgus lietotāju iesniegumus. Pareizais risinājums ir izmantot HTML entītijas, lai kodētu lietotāja iesniegtos datus. ja ir iespējoti HTML entītiju moduļi, rakstzīmes tiek automātiski kodētas formātā, kurā pārlūkprogramma zina, ka tās ir jāparāda kā pareizos simbolus, bet neuzskata tās par kodu.