DEV Community

Cover image for Kybersanasto - XSS
minjahakkeroi
minjahakkeroi

Posted on

Kybersanasto - XSS

Mitä XSS tarkoittaa?

XSS on lyhenne sanoista Cross-Site Scripting. Se on yksi yleisimmistä injektiohaavoittuvuuksista. Tästä ei taida valitettavasti olla suomenkielistä vastinetta, joten käytän tekstin aikana tuota XSS lyhennettä.

On olemassa kolmea erilaista XSS-haavoittuvuutta:
🌸 Reflected ("heijastettu")
🌸 Stored ("tallennettu")
🌸 DOM

Kaikille näille on yhteistä se, että hyökkääjä pystyy ajamaan omaa JavaScript-koodia sivustolla, jossa on tällainen haavoittuvuus.

Heijastetussa XSS:ssä hyökkääjä pystyy ajamaan JavaScript-koodia esimerkiksi syöttämällä sitä URL parametreihin. (Kuva 1)

Screenshot heijastetusta XSS:stä

Kuva 1: Heijastettu XSS

Tallennettu XSS tapahtuu niin, että hyökkääjä voi ajaa JavaScript-koodia, joka tallentuu palveluun. Esimerkiksi väärin konfiguroitu kommenttikenttä voisi olla tällainen. (Kuva 2 ja 3)

Screenshot tallennetusta XSS:stä

Kuva 2: Tallennettu XSS

Screenshot tallennetusta XSS:stä

Kuva 3: Tallennettu XSS

Kuvien esimerkit on otettu Portswiggerin XSS labroista.

DOM on vähän hankalasti selitettävä joten kannattaa siitä lukea muualta tarkemmin, mutta ajatuksena on että hyökkääjä voi muokata sivustolla olevaa koodia niin, että siitä aiheutuu XSS.

Pahimmillaan hyökkääjä voi saada haltuunsa käyttäjän istunnon palvelussa.

Kuinka XSS-haavoittuvuuksilta suojaudutaan?

Kuten tietoturvassa yleensäkin, suojautuminen XSS-haavoittuvuuksilta tapahtuu usealla tasolla:

🌸 Content-Security-Policy otsake sivuston kutsuissa vähentää oikein asetettuna XSS vakavuutta.

🌸 Käyttäjän syöttämä teksti tulisi filteröidä. Eli esimerkiksi nimi-kenttä verkkokaupan tilauksessa ei tarvitse muuta kuin kirjaimia ja numeroita, erikoissymbolit kuten < ja > tulisi filtteröidä pois.

🌸 Käytä valmiita kirjastoja, jotka hoitavat esimerkiksi käyttäjän syöttämän tekstin enkoodauksen.

Mistä voin lukea lisää aiheesta?

Lisätietoa:
OWASP Cross Site Scripting (XSS)
OWASP Cross Site Scripting Prevention Cheat Sheet

Tutoriaaleja:
Englanniksi: Portswigger Academy
Suomeksi: Hakatemia

Yhteenveto

Työskentelen tietoturva-asiantuntijana 2NS:llä. Ota mun minjahakkeroi-tilit seurantaan Instagramissa ja Threadsissä, jos haluat nähdä enemmän työstäni hyvishakkerina!

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more