Hvad er XSS (Cross-Site Scripting)?
Cross-Site Scripting, eller XSS, er en sikkerhedsfejl på websites, der lader angribere tilføje skadelige scripts til websider. Ofte er disse scripts skrevet i JavaScript.
Hvis nogen besøger en side påvirket af XSS, kører deres browser angriberens script. Dette kan resultere i stjålne cookies, kaprede sessioner eller handlinger udført uden brugerens tilladelse.
XSS, ligesom SQL Injection, er regelmæssigt opført i OWASP Top 10 som en af de mest almindelige sårbarheder i webapplikationer.

Hvordan fungerer XSS?
XSS retter sig ofte mod webapplikationer, der ikke korrekt kontrollerer og renser brugerinput.
For eksempel, hvis en kommentarboks tillader rå HTML eller JavaScript uden nogen filtrering, kunne en angriber tilføje kode som denne:
<script>alert('Hacked!');</script>
Når ofre ser siden, kører den skadelige kode i deres browser.
Hvorfor XSS er vigtigt i cybersikkerhed
XSS kan føre til et større brud:
- Kontoovertagelse (stjæle sessionscookies for at udgive sig for brugere)
- Datatyveri (opsnappe formularinput som adgangskoder eller kreditkort)
- Phishing-angreb (indsprøjte falske loginformularer)
- Malware-levering (omdirigere brugere til skadelige websites)
Typer af XSS
- DOM-baseret XSS
- Angrebet sker udelukkende i browseren ved at manipulere Document Object Model (DOM) uden at involvere serveren.
- Lageret XSS
- Ondartet script er permanent lagret på serveren, såsom i databasen, profilside.
- Reflekteret XSS
- Scriptet reflekteres fra en webserver (f.eks. i URL eller fejlmeddelelse), scriptet vil blive udført, når offeret klikker på et link skabt af angribere.
Hvordan man forhindrer XSS
- Input-sanitization & output-kodning: altid rense brugerinputdata, før de behandles, transformere brugerinput til et sikkert format
- Brug Content Security Policy (CSP): begrænser hvilke scripts der kan udføres i browseren.
- Undgå eval() og inline JavaScript: for at reducere injektionsrisici.
- Sikkerhedstestning (DAST/IAST): kør sikkerhedstestning for at opdage sårbarheder tidligt
Eksempel i virkelige tilfælde - Samy-ormen (MySpace, 2005)
Hvad skete der: Samy Kamkar offentliggjorde en MySpace-profil, der indeholdt en lageret XSS-payload. Når andre brugere så profilen, kørte payloaden i deres browsere, den (a) tilføjede Samy som ven, (b) tilføjede sætningen “Samy er min helt” til deres profiler, og (c) replikerede sig selv til disse brugeres profilsider.
Indvirkning: Ormen selv-replikerede til ~1 million brugere inden for ~20 timer, hvilket tvang MySpace offline midlertidigt.
Hvorfor det virkede: MySpace tillod uescape HTML/attributter i profilfelter, hvilket muliggjorde lagret scripteksekvering i besøgendes browsere.
Lektioner / rettelser: Korrekt outputkodning, inputsanitering, fjernelse af HTML i profilfelter og hurtig patching. Samy stod senere over for juridiske konsekvenser, og MySpace implementerede filtre.
Relaterede Termer
- SQL Injection
- DAST (Dynamic Application Security Testing)
- OWASP Top 10
- CSRF (Cross-Site Request Forgery)