Blog

Cross-Site-Scripting (XSS):
Wie man sich gegen Sicherheitslücken in Webanwendungen verteidigen kann?

Von Luca Sauter am 15. Februar 2024

Was ist XSS?

Cross-Site-Scripting oder XSS ist eine Attacke auf html-Websites, die seit Ende der 90-Jahre nicht an Relevanz verloren hat. Hierbei versucht ein Angreifer, seinen eigenen Code in eine Website einzuschleusen, um an Informationen über die Seite oder andere Nutzer zu gelangen. Mittlerweile ist diese Art von Angriffen weitläufig bekannt und gehört zu den bekanntesten Sicherheitsrisikos. Trotzdem sind weiterhin Firmen betroffen, so wurde 2020 eine XSS-Schwachstelle in der Netflix Watch Parties Extension entdeckt oder 2019 eine Lücke in einer Epic Games Domain, welche es den Angreifern erlaubte, sich Zugriff auf die Accounts von anderen Nutzern zu verschaffen.

Wie funktioniert XSS?

Die genaue Funktionsweise von den verschiedenen Arten von XSS ist ein großes Thema. Im Allgemeinen basieren aber alle diese Angriffe auf der Grundidee, mit Eingaben des Angreifers das Verhalten einer Website für sich oder für andere zu verändern. Dazu wird beispielsweise JavaScript-Code über Eingabefelder in die Website eingeschleust oder die Parameter in der URL direkt bearbeitet. Dadurch führt die Website potenziell schädlichen Code des Angreifers aus. So kann Nutzerinformation wie Cookies oder Session-Tokens an nicht berechtigte Dritte weitergegeben werden, was Identitätsdiebstahl ermöglicht. XSS kann ebenso die Identifikation von Phishing-Versuchen erschweren.

Was kann man gegen XSS tun?

Leider gibt es nicht eine spezielle Einstellung, welche alle XSS-Attacken verhindern kann. Das Wichtigste bei der Verteidigung gegen XSS ist die Erkenntnis, dass jede Eingabe eines Nutzers potenziell gefährlich sein kann. Das betrifft Eingabefelder auf der Website, aber auch Dropdown-Menüs, Parameter in der URL, Benutzernamen sowie HTML-Anfragen. Alles, was nicht unter der direkten Kontrolle der Entwickler steckt, kann über verschiedene Methoden Schaden im System anrichten.

Wie geht man nun vor, wenn man sein System vor solchen Schwachstellen schützen möchte? Hier ist es wichtig anzumerken, dass der Schutz von Systemen ein enorm wichtiges Thema ist und eigentlich nur von Experten durchgeführt werden sollte. Kleine Fehler oder Ungenauigkeiten können große Sicherheitsrisikos produzieren und sollten deswegen nicht auf die leichte Schulter genommen werden.

Trotzdem ist es wichtig zu wissen, wie man gegen XSS vorgehen kann. Ein großer Punkt ist die Bereinigung und die Validierung von Nutzereingaben. Durch gewisse Filter können diese Eingaben bearbeitet werden, sodass zum Beispiel Sonderzeichen wie < oder & codiert werden. Damit wird versucht sicherzustellen, dass solche Zeichen nicht als HTML-Code interpretiert werden. Mit cleveren Tricks können solche Filter aber umgangen werden.

Manchmal ist es sinnvoll, nicht jede Eingabe zu erlauben. Ein Ansatz dafür könnten sogenannte Blacklists sein. Auf einer Blacklist können gewisse Eingaben ausgeschlossen werden, zum Beispiel Eingaben welchen einen HTML-Script-Tag (<script>) enthalten. Noch sicherer ist aber eine Whitelist. Statt explizit Eingaben zu verbieten, werden Eingaben erlaubt. Dadurch ist man besser gegen neuere Angriffe geschützt, welche einem beim Erstellen der Liste noch nicht bekannt waren.

Je nach Anforderungen an die Webseite können auch radikalere Lösungen angewendet werden. Mit Content Security Policies (CSP) können HTML-Dokumente so konfiguriert werden, dass nur vertrauenswürdige Skripts ausgeführt werden können.

Das dynamische Erstellen und Laden von Code wird somit deaktiviert. Dadurch geht zwar eine gewisse Funktionalität verloren, es bietet aber ein hohes Level an Sicherheit.

Besonders da Cross-Site-Scripting so weit verbreitet ist, muss man immer mit der Möglichkeit eines XSS-Angriffs rechnen, wenn man Webseiten bereitstellt. Zur Verteidigung gibt es viele Möglichkeiten, man muss sich aber stets über neue Sicherheitslücken informieren und seine Lösung auf das Framework, in dem man arbeitet, anpassen.

Sie möchten mehr über die individuelle Entwicklung von KI-Projekten erfahren und interessieren sich dafür wie auch Ihr Unternehmen von Künstlicher Intelligenz profitieren kann?

Kontaktieren Sie uns gerne für eine unverbindliche Beratung.