Was ist XSS?
XSS steht für Cross-Site Scripting – das ist eine Sicherheitslücke in Webseiten, bei der bösartiger Code (meist JavaScript) eingeschleust wird.
Das Ziel: Ein Angreifer will, dass eine Webseite etwas ausführt, das sie eigentlich nicht tun sollte, zum Beispiel:
fremden Code im Browser ausführen,
Passwörter klauen,
Daten aus Formularen abfangen,
oder den Nutzer ausspionieren.
Ein einfaches Beispiel:
Stell dir vor, du bist auf einer Webseite mit einem Gästebuch.
Du schreibst dort normalerweise sowas wie:
„Hallo, tolle Seite!“
Aber jetzt schreibt ein Angreifer dort stattdessen:
<script>alert('Hacked!');</script>
Wenn die Webseite den Text ungeprüft anzeigt, passiert Folgendes:
Der Browser denkt, das ist echter JavaScript-Code.
Statt nur den Text anzuzeigen, wird der Code ausgeführt – z. B. ein Popup, das sagt „Hacked!“.
Noch schlimmer: Der Angreifer könnte Code einschleusen, der Cookies ausliest, Tastatureingaben aufzeichnetoder Daten an einen fremden Server schickt.
Warum ist das gefährlich?
Der Code läuft im Browser des Opfers, nicht auf dem Server.
Die Webseite selbst wirkt vertrauenswürdig, das macht es schwer zu erkennen.
Man denkt, man nutzt die Seite normal – dabei wurde sie manipuliert.
Arten von XSS:
Stored XSS (gespeichert):
Der böse Code wird dauerhaft in der Datenbank gespeichert (z. B. über ein Formular oder ein Gästebuch) und bei jedem Aufruf der Seite ausgeführt.Reflected XSS (reflektiert):
Der Code steckt in einem Link – z. B. wenn du auf einen manipulierten Link klickst, wird der Code sofort ausgeführt.DOM-based XSS:
Die Schwachstelle steckt im JavaScript der Seite selbst, das Eingaben falsch verarbeitet.
Wie schützt man sich (als Entwickler)?
Nutzereingaben niemals direkt anzeigen – immer „escapen“ oder filtern.
Verwenden von sicheren Webframeworks.
Content Security Policy (CSP) einsetzen, um gefährliche Skripte zu blockieren.
HTML, JavaScript und andere Inhalte trennen.
Zusammengefasst:
XSS ist eine Sicherheitslücke, bei der Angreifer bösartigen Code auf Webseiten einschleusen.
Der Code wird im Browser des Nutzers ausgeführt, nicht auf dem Server.
Ziel ist oft, Daten zu klauen oder Nutzer zu täuschen.
Webseiten müssen Nutzereingaben sicher verarbeiten, um das zu verhindern.