
Achtung
Es dürfen nur Daten von der Web-Dynpro-Anwendung an den Client (Web-Browser) gesendet werden, die der Benutzer auch sehen darf.
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
Alle vom Client an eine Web-Dynpro-Anwendung gesendeten Daten können manipuliert sein.
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.
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.
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.
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.
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.
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.
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. |