Show TOC

Zulässigkeit von Datenbankänderungen beim Start, Resume, TimedTrigger und Notification-Service Dieses Dokument in der Navigationsstruktur finden

 

Grundsätzlich dürfen Datenbankänderungen nur erfolgen, wenn sichergestellt ist, dass eine Aktion durch den Benutzer selbst ausgeführt und ihm nicht „untergeschoben“ wurde. Eine Methode zum „Unterschieben“ von Requests wird als Cross Site Request Forgery (XSRF) bezeichnet.

Aufgrund der Architektur des World-Wide-Webs kann beim Start-Request und Resume-Request einer Anwendung nicht sichergestellt werden, dass dieser von einem Benutzer und nicht von einer XSRF-Attacke stammt. Daher darf die Anwendung während dieser Requests den Zustand des Servers nicht ändern.

Dies gilt auch für Actions, die durch den TimedTrigger und Notification-Service ausgelöst werden, wenn der TimedTrigger bzw. Notification-Service nicht durch eine Benutzer-Aktion aktiviert wird, sondern unmittelbar beim Start oder Resume der Anwendung.

Beispiel Beispiel

Der Workflow für die Urlaubsgenehmigung versendet Emails an Manager mit einem Link für die Genehmigung eines Urlaubs. Der Klick auf den Link darf nicht unmittelbar zur Genehmigung führen. Die Anwendung kann abgesichert werden, indem beim Start nur ein Formular mit den Informationen zur Urlaubs-Genehmigung angezeigt wird und dem Benutzer ein Genehmigen und möglichst noch ein Abbrechen-Button angeboten werden. Erst durch Klicken auf den Genehmigen-Button wird der Urlaub auch wirklich genehmigt.

Ende des Beispiels.

Alle durch den Benutzer ausgeführten Aktionen sind vom Web-Dynpro-Framework gegen XSRF abgesichert. Der Button-Klick kann dem Benutzer also nicht untergeschoben werden.