Command Palette

Search for a command to run...

Sanasto XSS (Cross-Site Scripting)

Mikä on XSS (Cross-Site Scripting)?

Cross-Site Scripting eli XSS on verkkosivustojen tietoturvahaavoittuvuus, joka mahdollistaa hyökkääjien haitallisten skriptien lisäämisen verkkosivuille. Useimmiten nämä skriptit kirjoitetaan JavaScriptillä.

Jos joku vierailee XSS:stä kärsivällä sivulla, hänen selaimensa suorittaa hyökkääjän skriptin. Tämä voi johtaa evästeiden varastamiseen, kaapattuihin istuntoihin tai toimiin, jotka tehdään ilman käyttäjän lupaa.

XSS, kuten SQL Injection, on säännöllisesti listattu OWASP Top 10:ssä yhtenä yleisimmistä verkkosovellusten haavoittuvuuksista.

plexicus-xss-attack-ilustration

Kuinka XSS toimii?

XSS kohdistuu usein verkkosovelluksiin, jotka eivät tarkista ja puhdista käyttäjän syötteitä oikein.

Esimerkiksi, jos kommenttilaatikko sallii raaka HTML:n tai JavaScriptin ilman mitään suodatusta, hyökkääjä voisi lisätä koodin kuten:

<script>alert('Hakkeroitu!');</script>

Kun uhrit katsovat sivua, haitallinen koodi suoritetaan heidän selaimessaan.

Miksi XSS on tärkeä kyberturvallisuudessa

XSS voi johtaa suurempaan tietomurtoon :

  • Tilin kaappaus (istuntokeksien varastaminen käyttäjien teeskentelyyn)
  • Tietovarkaus (lomakekenttien, kuten salasanojen tai luottokorttien, kaappaaminen)
  • Kalasteluhyökkäykset (väärennettyjen kirjautumislomakkeiden injektointi)
  • Haittaohjelmien toimitus (käyttäjien ohjaaminen haitallisille verkkosivustoille)

XSS-tyypit

  1. DOM-pohjainen XSS
  2. Hyökkäys tapahtuu kokonaan selaimessa manipuloimalla Document Object Model (DOM) -rakennetta ilman palvelimen osallistumista.
  3. Tallennettu XSS
  4. Haitallinen skripti tallennetaan pysyvästi palvelimelle, kuten tietokantaan tai profiilisivulle.
  5. Heijastettu XSS
  6. Skripti heijastuu verkkopalvelimelta (esim. URL-osoitteessa tai virheilmoituksessa), skripti suoritetaan, kun uhri napsauttaa hyökkääjien luomaa linkkiä.

Kuinka estää XSS

  • Syötteen puhdistus ja tulosteen koodaus: aina käyttäjän syötteen puhdistaminen ennen sen käsittelyä, käyttäjän syötteen muuntaminen turvalliseen muotoon
  • Käytä Content Security Policy (CSP): rajoittaa, mitä skriptiä voidaan suorittaa selaimessa.
  • Vältä eval()- ja sisäistä JavaScriptiä: vähentääksesi injektioriskejä.
  • Turvatestaus (DAST/IAST): suorita turvatestausta haavoittuvuuksien havaitsemiseksi aikaisin

Esimerkki todellisesta maailmasta - Samy-mato (MySpace, 2005)

Mitä tapahtui: Samy Kamkar julkaisi MySpace-profiilin, joka sisälsi tallennetun XSS-hyökkäyskoodin. Kun muut käyttäjät katsoivat profiilia, hyökkäyskoodi suoritettiin heidän selaimissaan, se (a) lisäsi Samyn ystäväksi, (b) lisäsi lauseen “Samy on sankarini” heidän profiileihinsa ja (c) kopioi itsensä näiden käyttäjien profiilisivuille.

Vaikutus: Mato levisi itsestään ~1 miljoonalle käyttäjälle noin 20 tunnissa, pakottaen MySpacen tilapäisesti offline-tilaan.

Miksi se toimi: MySpace salli pakkaamattoman HTML:n/attribuuttien käytön profiilikentissä, mikä mahdollisti tallennetun skriptin suorittamisen vierailijoiden selaimissa.

Opit / korjaus: Asianmukainen tulosteen koodaus, syötteen puhdistus, HTML:n poistaminen profiilikentistä ja nopea korjaaminen. Samy kohtasi myöhemmin oikeudellisia seuraamuksia, ja MySpace otti käyttöön suodattimia.

Liittyvät termit

Seuraavat askeleet

Valmis turvaamaan sovelluksesi? Valitse polkusi eteenpäin.

Liity yli 500 yritykseen, jotka jo turvaavat sovelluksensa Plexicuksen avulla

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready