IT-Lexikon

In diesem kleinen IT-Lexikon erfährst du alles Wissenswerte rund um die spannenden Themen der Full-Stack Entwicklung und DevOps. Hier findest du klare und leicht verständliche Erläuterungen, die selbst komplexe technische Begriffe ganz einfach auf den Punkt bringen.

XSS
Themen aus der Full-Stack Entwicklung und DevOps

XSS ist eine Sicherheitslücke in Webanwendungen, bei der Angreifer schädlichen Code – meist JavaScript – in Webseiten einschleusen, die andere Nutzer aufrufen. Dadurch kann ein Angreifer Aktionen im Browser des Opfers ausführen, ohne dessen Wissen oder Zustimmung. XSS zählt zu den häufigsten und gefährlichsten Web‑Schwachstellen.

Die drei Hauptarten von XSS

1. Reflected XSS

  • Der schädliche Code wird über eine URL oder ein Formular eingeschleust.
  • Die Anwendung gibt diesen Code direkt im Response zurück.
  • Das Opfer muss auf einen präparierten Link klicken.
    Typisch: Suchfelder, Fehlermeldungen, GET‑Parameter.

2. Stored XSS

  • Der Code wird dauerhaft auf dem Server gespeichert.
  • Jedes Opfer, das die betroffene Seite aufruft, wird automatisch angegriffen.
    Typisch: Kommentare, Forenbeiträge, Profilfelder.

3. DOM‑Based XSS

  • Der Angriff findet komplett im Browser statt.
  • JavaScript im Client verarbeitet Eingaben unsicher und führt sie aus.
    Typisch: unsichere Manipulation von innerHTML, URL‑Fragmenten oder Query‑Parametern.

Was Angreifer mit XSS erreichen können

XSS ermöglicht unter anderem:

  • Session‑Cookies auslesen (und damit Benutzerkonten übernehmen)
  • Aktionen im Namen des Opfers ausführen
  • Inhalte der Seite manipulieren
  • Phishing direkt innerhalb einer legitimen Seite
  • Keylogging im Browser
  • Weiterleitungen auf schädliche Seiten
XSS ist deshalb besonders gefährlich, weil der Angriff im Kontext der vertrauenswürdigen Website ausgeführt wird.

Wie man XSS verhindert

1. Output‑Encoding

Alle Benutzereingaben korrekt escapen, bevor sie im HTML erscheinen:

  • HTML‑Kontext
  • JavaScript‑Kontext
  • URL‑Kontext
  • CSS‑Kontext

2. Input‑Validierung

Nur erlaubte Zeichen zulassen, besonders bei Feldern, die HTML enthalten könnten.

3. Content Security Policy (CSP)

Eine CSP kann verhindern, dass eingeschleuster Code ausgeführt wird.

4. Keine unsicheren Funktionen

Beispiele:

  • innerHTML → besser textContent
  • document.write vermeiden

5. HTTP‑Only Cookies

Schützt Cookies vor JavaScript‑Zugriff.

Wie XSS erkannt wird

  • Penetrationstests
  • Security‑Scanner
  • Code‑Reviews
  • Browser‑Developer‑Tools
  • Logging und Monitoring

 

Zurück