Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Web Security-Projekt: XSS und CSRF verstehen und abwehren

Lerne in diesem Tutorial die Grundlagen von Cross-Site Scripting (XSS) und Cross-Site Request Forgery (CSRF) – zwei der gefährlichsten Web-Sicherheitslücken. Ideal für Studierende, die sich auf das CS6035 Web Security Project vorbereiten.

XSS CSRF Web Security CS6035 Cross-Site Scripting Cross-Site Request Forgery OWASP Top 10 Sicherheitslücken Web Security Project Reflected XSS Stored XSS CSRF-Token Content Security Policy Input Validierung Same-Site Cookies Web Security Tutorial

Einleitung: Warum Web Security heute wichtiger ist denn je

Im Mai 2026 sind Webanwendungen allgegenwärtig – von Online-Banking über soziale Medien bis hin zu KI-gestützten Apps. Doch mit der wachsenden Komplexität steigen auch die Sicherheitsrisiken. Zwei der hartnäckigsten Bedrohungen sind Cross-Site Scripting (XSS) und Cross-Site Request Forgery (CSRF). Diese Schwachstellen stehen im Zentrum des CS6035 Web Security Projects und sind auch in der Praxis für Unternehmen wie Google, Meta oder Start-ups relevant. In diesem Tutorial lernst du die Grundlagen, Angriffsmuster und Abwehrmechanismen – praxisnah und verständlich.

Was ist Cross-Site Scripting (XSS)?

XSS ist eine Sicherheitslücke, bei der ein Angreifer bösartigen JavaScript-Code in eine Webseite einschleust. Dieser Code wird dann im Browser eines anderen Nutzers ausgeführt. Man unterscheidet drei Haupttypen:

  • Reflected XSS: Der bösartige Code wird in einer Anfrage (z. B. URL) an den Server gesendet und direkt in der Antwort zurückgegeben.
  • Stored XSS: Der Code wird dauerhaft auf dem Server gespeichert, z. B. in einem Kommentar oder einer Produktbewertung.
  • DOM-based XSS: Der Angriff erfolgt clientseitig, indem das Document Object Model (DOM) manipuliert wird.

Beispiel: Reflected XSS in einer Suchfunktion

Stell dir vor, eine Buchhandlung hat eine Suchseite: https://bookstore.example.com/search?q=Suchbegriff. Wenn die Seite den Suchbegriff ungefiltert in den HTML-Code einfügt, könnte ein Angreifer eine URL wie https://bookstore.example.com/search?q= erstellen. Sobald ein ahnungsloser Nutzer darauf klickt, wird das Skript ausgeführt.

Was ist Cross-Site Request Forgery (CSRF)?

Bei CSRF wird ein authentifizierter Nutzer dazu gebracht, eine ungewollte Aktion auf einer Webseite auszuführen. Der Angreifer erstellt eine bösartige Seite, die im Hintergrund eine Anfrage an die Zielseite sendet – z. B. um ein Passwort zu ändern oder eine Überweisung zu tätigen. Da der Nutzer bereits eingeloggt ist, wird die Anfrage als legitim behandelt.

Typisches CSRF-Szenario

Ein Nutzer ist bei seiner Online-Bank eingeloggt. Der Angreifer schickt ihm eine E-Mail mit einem Link zu einer Seite, die ein verstecktes Formular enthält: <form action="https://bank.example.com/transfer" method="POST"><input name="amount" value="1000"></form>. Wenn der Nutzer die Seite öffnet, wird das Formular automatisch abgeschickt – und das Geld ist weg.

Verbindung zur Praxis: Web Security Trends 2026

Im Jahr 2026 sind KI-gestützte Chatbots und personalisierte Web-Apps alltäglich. Doch gerade diese Anwendungen sind anfällig für XSS und CSRF, wenn Entwickler keine sicheren Coding-Praktiken anwenden. Ein aktuelles Beispiel: Ein beliebter KI-Assistent speichert Nutzeranfragen in einer Datenbank – ohne Escape-Funktion könnte ein Angreifer schädlichen Code einbetten. Auch in der Fintech-Branche sind CSRF-Angriffe gefürchtet: 2025 wurde eine Sicherheitslücke in einer bekannten Trading-App aufgedeckt, die es ermöglichte, unautorisierte Käufe zu tätigen.

Schutzmaßnahmen gegen XSS

  • Input-Validierung und -Sanitisierung: Alle Nutzereingaben prüfen und schädliche Zeichen wie <script> entfernen oder escapen.
  • Content Security Policy (CSP): Ein HTTP-Header, der festlegt, welche Skriptquellen erlaubt sind.
  • Output Escaping: Bevor Daten in HTML, JavaScript oder URLs eingefügt werden, müssen sie escaped werden (z. B. &lt; für <).

Schutzmaßnahmen gegen CSRF

  • CSRF-Token: Ein zufälliger, geheimer Wert, der in jedem Formular oder jeder wichtigen Anfrage mitgesendet wird. Der Server prüft die Gültigkeit.
  • Same-Site Cookies: Setze das Attribut SameSite=Strict oder Lax, um zu verhindern, dass Cookies bei Cross-Site-Anfragen gesendet werden.
  • Double Submit Cookie: Ein zufälliger Token wird sowohl als Cookie als auch als Anfrageparameter gesendet; der Server vergleicht beide.

Praktische Übung: XSS und CSRF im CS6035-Projekt

Das CS6035 Web Security Project simuliert eine verwundbare Buchhandlungswebseite. Du wirst aufgefordert, verschiedene Flags zu finden, indem du XSS- und CSRF-Exploits erstellst. Hier ein Beispiel für einen einfachen XSS-Angriff:

<script>alert('CS6035');</script>

Wenn die Seite diesen Code nicht filtert, erscheint ein Alert-Fenster. Für CSRF musst du eine HTML-Seite erstellen, die automatisch ein Formular an die Buchhandlung sendet, z. B. um das Passwort des Benutzers zu ändern.

Häufige Fehler und wie du sie vermeidest

  • Fehler 1: Keine Escape-Funktion: Viele Anfänger glauben, dass das Entfernen von HTML-Tags ausreicht. Besser: Verwende Bibliotheken wie OWASP Java Encoder oder PHP’s htmlspecialchars().
  • Fehler 2: CSRF-Token vergessen: Bei jeder zustandsändernden Aktion (POST, PUT, DELETE) muss ein gültiger Token mitgesendet werden.
  • Fehler 3: SameSite nicht gesetzt: Ohne SameSite-Attribut können Cookies standardmäßig bei Cross-Site-Anfragen gesendet werden.

Fazit: Web Security ist ein Muss

Ob du nun das CS6035-Projekt absolvierst oder einfach nur deine Web-App sicherer machen willst – die Kenntnis von XSS und CSRF ist unerlässlich. Mit den richtigen Schutzmaßnahmen kannst du die häufigsten Angriffe abwehren. Denk daran: Sicherheit ist kein Feature, sondern ein Prozess. Teste regelmäßig, verwende automatisierte Scanner und bilde dich stets weiter.

„Der beste Weg, Sicherheitslücken zu vermeiden, ist, sie zu verstehen.“ – Unbekannt