Ansicht
Dokumentation

ABENABAP_SYSTEM_COMMANDS_APPL_DEPR - ABAP SYSTEM COMMANDS APPL DEPR

ABENABAP_SYSTEM_COMMANDS_APPL_DEPR - ABAP SYSTEM COMMANDS APPL DEPR

Vendor Master (General Section)   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Unerwünschte Aufrufe von Betriebssystem-Anweisungen

Neben dem Aufruf der Funktionsbausteine des SXPG-Frameworks können in ABAP-Programmen auch wie folgt Betriebssystem-Anweisungen für den Hostrechner der aktuellen abgesetzt werden:

  • Verwendung des Zusatzes FILTER der Anweisung OPEN DATASET für das Ausführen von Betriebssystem-Anweisung über Pipes.
  • Verwendung der internen Anweisung CALL um die spezielle Systemfunktion SYSTEM aufzurufen, mit der Betriebssystem-Anweisungen ausgeführt werden können.

Diese beiden Möglichkeiten sollten nicht für die allgemeine Ausführung von Betriebssystem-Anweisungen in ABAP-Programmen verwendet werden.

  • Der Zusatz FILTER zu OPEN DATASET sollte wenn überhaupt nur für Betriebssystem-Anweisungen verwendet werden, die für die für die Behandlung von Dateien sinnvoll sind.
  • Ein Aufruf der Systemfunktion SYSTEM mit der internen Anweisung CALL ist in Anwendungsprogrammen völlig unerwünscht und kann über den Profilparameter rdisp/call_system deaktiviert werden. Ein Aufruf führt dann zu einer unbehandelbaren Ausnahme.

Bei beiden Anweisungen bestehen folgende Probleme:

  • Es gibt keine zentralen Berechtigungsprüfungen
  • Die Plattformabhängigkeit der Betriebssystem-Anweisungen muss im ABAP-Programm selbst behandelt werden.
  • Fehler und Ausnahmen sind nicht spezifisch behandelbar.
  • Wenn Eingaben von außen verwendet werden, müssen diese aufwändig überprüft und gefiltert werden, um System Command Injections für jede Plattform sicher zu verhindern.

Statt dieser beiden Möglichkeiten sollte deshalb möglichst das SXPG-Framework verwendet werden.

Hinweis

Für eine Deaktivierung der Anweisung CALL 'SYSTEM' über den Profilparameter rdisp/call_system muss sicher gestellt werden, dass sie in keinem Programm mehr verwendet wird. Die Programme, in denen noch CALL 'SYSTEM' verwendet wird, müssen erst auf Verwendung des SXPG-Frameworks umgestellt werden, bevor die unerwünschte Anweisung deaktiviert werden kann. Die Möglichkeiten des SXPG-Frameworks decken in der Regel alle Anforderungen an den Aufruf von Betriebssystem-Anweisungen ab.

Beispiel

Aufruf der Betriebssystem-Anweisung ping für den zentralen Datenbankserver des Systems auf dem Hostrechner der aktuellen über den Zusatz FILTER der Anweisung OPEN DATASET. Die Ausgabe der Betriebssystem-Anweisung wird in die geöffnete Datei geschrieben und kann von dort ausgelesen werden.

Beispiel

Aufruf der Betriebssystem-Anweisung ping für den zentralen Datenbankserver des Systems auf dem Hostrechner der aktuellen über die Systemfunktion SYSTEM. Das Ergebnis des Aufrufs wird in die interne Tabelle result gestellt. Das Beispiel ist nur ausführbar, wenn der Profilparameter rdisp/call_system den Aufruf erlaubt.






RFUMSV00 - Advance Return for Tax on Sales/Purchases   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5019 Date: 20240523 Time: 153257     sap01-206 ( 59 ms )