G 4.84 Unzureichende Validierung von Ein- und Ausgabedaten bei Webanwendungen und Web-Services

Webanwendungen werden im Allgemeinen von generischen Clients (Web-Browsern) verwendet, sodass Benutzer beliebige Eingabedaten an den Server übermitteln können. Auf Web-Services wird dagegen durch andere Anwendungen oder Dienste zugegriffen (beispielsweise Smartphone-Apps). Eingabedaten können aber auch hier oft modifiziert werden, beispielsweise durch den Einsatz eines Proxys oder durch Manipulation der Clients. Werden schadhafte Eingaben eines Angreifers von der Webanwendung beziehungsweise dem Web-Service verarbeitet, können möglicherweise Schutzmechanismen umgangen werden.

Beispiele für Angriffe, die auf einer unzureichenden Validierung von Eingabedaten beruhen, sind SQL-Injection (siehe G 5.131 SQL-Injection), Path Traversal (siehe G 5.172 Umgehung der Autorisierung bei Webanwendungen und Web-Services) und Remote File Inclusion. Diese Angriffe können Unbefugten Zugriff auf das Betriebssystem oder auf Hintergrundsysteme ermöglichen. Bei einem erfolgreichen Angriff können schützenswerte Daten unautorisiert ausgelesen oder manipuliert werden.

Nachdem die Webanwendung beziehungsweise der Web-Service die Eingabedaten erfolgreich verarbeitet hat, werden üblicherweise wieder Daten ausgegeben. Die Ausgabedaten werden entweder direkt an den Browser des Benutzers (zum Beispiel Statusmeldungen oder ein neuer Eintrag im Gästebuch) oder die aufrufende Anwendung übermittelt oder an nachgelagerte Systeme weitergereicht. Werden die Daten vor der Ausgabe nicht ausreichend validiert, könnten die Ausgaben Schadcode enthalten, der auf den Zielsystemen interpretiert oder ausgeführt wird.

Die folgenden Beispiele beschreiben mögliche Auswirkungen einer unzureichenden Validierung von Ein- und Ausgaben: