XSS (Cross-Site Scripting)

Was ist XSS (Cross-Site Scripting)?

XSS – Cross-Site Scripting – ist eine der häufigsten Sicherheitslücken in Webanwendungen, auch in WordPress. Bei einem XSS-Angriff schleust ein Angreifer schädlichen JavaScript-Code in eine Website ein, der dann im Browser anderer Benutzer ausgeführt wird – ohne dass die Opfer es merken.

Wie XSS-Angriffe funktionieren

Ein typisches Szenario: Ein Angreifer postet einen Kommentar auf einer WordPress-Seite, der JavaScript-Code enthält. Wenn das System den Kommentar ungefiltert ausgibt, wird der Code im Browser jedes Besuchers ausgeführt, der die Seite aufruft. Mit diesem Code kann der Angreifer Session-Cookies stehlen, Benutzer auf gefälschte Seiten umleiten oder sogar Tastatureingaben aufzeichnen.

Es gibt drei XSS-Varianten:

  • Reflected XSS – schädlicher Code steckt in der URL und wird sofort ausgeführt, wenn jemand auf einen präparierten Link klickt
  • Stored XSS – der Code wird in der Datenbank gespeichert (z.B. in Kommentaren oder Formularfeldern) und bei jedem Seitenaufruf ausgeführt
  • DOM-based XSS – die Manipulation erfolgt direkt im Browser über das Document Object Model, ohne Serverbeteiligung

XSS in WordPress verhindern

WordPress bietet eingebaute Schutzmechanismen. Die wichtigsten für Entwickler:

  • Escaping – alle Ausgaben müssen mit den richtigen WordPress-Funktionen escaped werden: esc_html(), esc_attr(), esc_url(), wp_kses()
  • Nonces – schützen Formulare vor CSRF-Angriffen, die oft mit XSS kombiniert werden
  • Content Security Policy (CSP) – HTTP-Header, der dem Browser mitteilt, welche Skript-Quellen erlaubt sind

Für Website-Betreiber ohne Entwicklerhintergrund gilt: Plugins und Themes immer aktuell halten – die meisten XSS-Lücken in WordPress entstehen durch veraltete oder schlecht entwickelte Erweiterungen.