F5-Glossar

Fluchtverarbeitung

Unter „Escaping“ versteht man den Vorgang in Auszeichnungssprachen, Programmiersprachen oder Skriptsprachen, bei dem Zeichen oder Symbole mit besonderer Bedeutung in alternative Zeichenfolgen umgewandelt werden, die sicher verarbeitet werden können.

Beispielsweise sind in HTML die Zeichen < und > für die Beschreibung von Tags reserviert. Wenn diese Zeichen direkt in HTML erscheinen, interpretiert ein Webbrowser sie als Markup und nicht als einfachen Text. Um diese Symbole als einfachen Text anzuzeigen, müssen sie als Escape-Sequenzen geschrieben werden, beispielsweise < für < und > für >. Wenn ein Browser auf diese Escape-Sequenzen stößt, stellt er sie visuell als die ursprünglichen Zeichen (< und >) dar. Diesen Konvertierungsprozess nennen wir „Entkommen“.

Im Kontext der Web-Sicherheit ist das Escapen besonders wichtig. Es handelt sich um einen wesentlichen Aspekt der „Bereinigung“, einer Vorgehensweise, die auf die sichere Verarbeitung von Benutzereingaben über Webformulare abzielt.

Stellen Sie sich beispielsweise eine Application vor, die Benutzereingaben aus einem Formular entgegennimmt und diese direkt auf einer Folgeseite anzeigt. Angenommen, ein Benutzer übermittelt die Eingabe:
<script>alert("Hallo!");</script>
Wenn die Application diese Zeichenfolge ohne Escapezeichen direkt in die resultierende Seite einfügt, interpretiert der Browser sie als JavaScript-Code und führt sie aus. Infolgedessen würde ein Popup-Warnfeld mit der Meldung „Hallo!“ erscheinen, was vom Ersteller oder Administrator der Website nicht beabsichtigt war. Obwohl dieses einfache Skript möglicherweise keinen erheblichen Schaden anrichtet, stellt die Möglichkeit für Drittbenutzer, Skripte willkürlich in Webseiten einzubetten, ein ernstes Problem dar und setzt die Site potenziell Cross-Site-Scripting-Angriffen (XSS) und anderen Sicherheitsbedrohungen aus.

Um dies zu verhindern, sollte die Application Sonderzeichen vor der Darstellung solcher Daten korrekt maskieren. Durch Ersetzen von < und > durch die entsprechenden Escape-Sequenzen (< und >) würde das schädliche Skript harmlos als folgende Zeichenfolge dargestellt:
<script>alert("Hallo!");</script>
In dieser Form behandelt der Browser es strikt als Text, neutralisiert dadurch alle Skripte und zeigt sie wie vorgesehen an, ohne unbeabsichtigtes Verhalten auszulösen.

Die meisten modernen Sprachen und Frameworks zur Entwicklung von Application verfügen über integrierte Funktionen zum geeigneten Escapen von Zeichenfolgen. Allerdings kann die Überprüfung, ob jede Eingabe in komplexen Applications korrekt maskiert wird, sowie die Identifizierung und Korrektur problematischer Elemente einen erheblichen Zeit- und Arbeitsaufwand erfordern. Eine äußerst effektive Lösung für dieses Problem ist die Verwendung einer Web Application Firewall (WAF), die sicherstellt, dass vom Benutzer übermittelte Eingaben maskiert werden, bevor sie die Application erreichen.

F5 bietet WAF-Funktionalität mit der F5 BIG-IP- Lösung.