Kas yra kelių svetainių scenarijų kūrimas?

click fraud protection

Viena iš labiausiai paplitusių svetainių pažeidžiamumo klasių vadinama „Kryžminio scenarijaus kūrimas“ 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 „nuolatinis“ kelių svetainių scenarijus. užpuolikas gali sukurti XSS naudingąjį krovinį 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, 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 kurių atakų yra vien tik kliento pusėje, niekada nesiunčiama į serverį, o veikia tik kliento pusę 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 naudotojams pateiktiems dokumentams. 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.