Show TOC

Sicherheit der Daten von Web-Anwendungen Dieses Dokument in der Navigationsstruktur finden

 

Achtung Achtung

Es dürfen nur Daten von der Web-Dynpro-Anwendung an den Client (Web-Browser) gesendet werden, die der Benutzer auch sehen darf.

Ende der Warnung.

Dies gilt auch, wenn die Daten normalerweise für den Benutzer auf der Oberfläche nicht sichtbar sind.

Es ist möglich, mit einfachen Hilfsmitteln, die jedermann zur Verfügung stehen, auf sämtliche an den Client gesendeten Daten (HTTP Response) zuzugreifen. Dafür kann beispielsweise HTTPWatch, Fiddler oder auch der DOM-Explorer eingesetzt werden.

Achtung Achtung

Alle vom Client an eine Web-Dynpro-Anwendung gesendeten Daten können manipuliert sein.

Ende der Warnung.

Die vom Client an eine Web-Anwendung gesendeten Daten (HTTP Request) können leicht manipuliert werden. Beispielsweise kann man auch ein zusätzliches Tool verwenden, durch Eingeben einer manipulierten URL oder von JavaScript (javascript: ) in der Adresszeile des Web-Browsers eine Anwendung auf nicht vorgesehene Art und Weise ansprechen.

Diese Angriffe können in erster Linie durch den Benutzer der Anwendung selbst durchgeführt werden. Es gibt aber auch komplexe Szenarien, wie zum Beispiel durch „Unterschieben“ einer Web-Seite, die — für den Benutzer „unsichtbar“ — mit seinem Zugang Daten an die Web-Anwendung sendet (XSRF).

Nachfolgend werden einzelne Szenarien in Web Dynpro ABAP beschrieben, bei denen die beiden Regeln (Warnungen) besonders zu beachten sind.

Sicherheit von Anwendungs- bzw. URL-Parametern

Man kann beim Start einer Web-Dynpro-ABAP-Anwendung URL-Parameter übergeben, die, abgesehen von wenigen Ausnahmen, durch die Anwendung im Startup-Plug ausgelesen werden können. Analoges gilt beim Resume einer Anwendung am Resume-Plug.

Entspricht der Name eines URL-Parameters dem eines Anwendungsparameters, so wird der in der Anwendung angegebene Parameter-Wert durch den URL-Parameter-Wert überschrieben.

Parameter-Werte müssen von der Anwendung selbst geprüft werden. Das Web-Dynpro-Framework führt keinerlei Prüfung durch. Die Typ-, Wertebereichs- und gegebenenfalls Plausibilitäts- und Berechtigungsprüfung muss durch die Anwendung vorgenommen werden.

Die Daten müssen so behandelt werden, als ob der Benutzer sie manuell eingeben hätte.

Sicherheit der Daten beim Exit-Plug und Portal-Navigation

Die beim Aufruf des Exit-Plugs oder bei der Portal-Navigation angegebenen Parameter werden über den Client an die zu startende Anwendung gesendet.

Die Parameter dürfen daher keine Daten enthalten, die der Benutzer nicht sehen darf.

Sicherheit der Daten beim Portal-Eventing

Da die Daten von Anwendung A zu Anwendung B über den Web-Browser verschickt werden, gelten die gleichen Aussagen wie für URL-Parameter.

Daten, die der Benutzer nicht sehen soll, dürfen nicht über Portal-Eventing weiter gegeben werden.

Die Daten müssen vom Empfänger so behandelt werden, als ob der Benutzer diese manuell eingeben hat. Gegebenenfalls muss eine Typ-, Wertebereichsprüfung, Datenkonvertierung, Plausibilitätsprüfung oder Berechtigungsprüfung erfolgen, da diese nicht vom Web-Dynpro-Framework durchgeführt wird.

Sicherheit der Daten von CHIP In- und Outports

Parameter für In- und Outports sind analog wie Start- und Resume-Parameter zu behandeln.

Daten, die der Benutzer nicht sehen soll, dürfen nicht über Inbound und Outbound Plugs weiter gegeben werden.

Die Daten müssen beim Empfänger so behandelt werden, als ob der Benutzer sie manuell eingeben hat. Gegebenenfalls muss eine Wertebereichsprüfung, Plausibilitätsprüfung oder Berechtigungsprüfung erfolgen, da diese nicht vom Web-Dynpro-Framework durchgeführt wird.

Mime Objekte

Web Dynpro stellt eine Funktion bereit, um Mime-Objekte an einer Web-Dynpro-ABAP-Komponente zu speichern. Diese Files können in Web-Dynpro-ABAP-Anwendungen über einen HTTP-Zugriff verwendet werden. Das Mime-Objekt wird nach dem ersten Zugriff im Browser-Cache gespeichert. Wenn Sie dieses Caching vermeiden möchten, löschen Sie im entsprechenen Mime-Objekt alle Werte für die Verfallsdauer und entfernen Sie den Schalter „Verfallsdauer aktiv“. Der Schalter „Individuelle Verfalldauer“ muss eingeschaltet sein.

Erläuterungen zu den Prüfungen

Prüfung

Beschreibung

Typprüfung

URL- und Anwendungs-Parameter werden als charakterartige Daten behandelt. Es ist beispielsweise nicht möglich, Anwendungs-Parameter vom Typ Integer zu definieren. So kann beim MOVE in ein Integer-Feld eine CX_SY_MOVE_CAST_ERROR-Exception auftreten. Dies sollte vom Anwendungsentwickler abgefangen werden.

Wertebereichsprüfung

Zusätzlich muss geprüft werden, ob der Wert nicht nur in den Zieltyp konvertierbar ist, sondern auch einen gültigen Wert darstellt. Beispielsweise X und SPACE bei boolschen Werten.

Plausibilitätsprüfung

Es muss geprüft werden, ob unter den gegebenen Umständen die Eingabe überhaupt sinnvoll und möglich ist.

Berechtigungsprüfung

Es muss geprüft werden, ob beispielsweise der Benutzer die angeforderte Aktion ausführen bzw. das angegebene Objekt anzeigen darf.