SAP-Sicherheit: SQL Injections mit SAPs Open SQL

Open SQL, SAPs SQL-Interpretation, vermindert die Abhängig­keiten zu Datenbanksystemen. Leider gibt es auch hier einige Schwachstellen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
Lesezeit: 10 Min.
Von
  • Safuat Hamdy
  • Gert Kremser
Inhaltsverzeichnis
Mehr zu SAP

SAP-Systeme und Datenbanken pflegen eine enge Beziehung. Es liegt also eigentlich nahe, aus der Programmiersprache ABAP heraus Datenbankabfragen zu formulieren. SAP löst die Sache jedoch anders und unterscheidet dazu zwischen Open SQL und Native SQL.

Open SQL ist eine in ABAP integrierte hauseigene Entwicklung. Ihr Zweck besteht darin, die Datenbank so zu abstrahieren, dass sich die Programmierer nicht um die Eigenarten der Datenhaltung kümmern müssen. NetWeaver wie auch sein Vorgänger R/3 arbeiten mit verschiedenen Datenbanken zusammen, namentlich Oracle Database, MS SQL, Sybase, DB2 und SAP HANA. Erst mit S/4HANA ist nur noch Letztere zulässig.

Ziel ist es, die Ergebnisse von Anfragen vollkommen unabhängig von der Datenbank zu halten, das heißt, dieselbe Anfrage soll für jede Datenbank exakt dasselbe Ergebnis liefern, und zwar ohne Anpassung des Sourcecodes. Darüber hinaus kann der Programmierer Open-SQL-Statements direkt in ABAP formulieren, sodass die Ergebnisse unmittelbar in ABAP-Datenstrukturen zur Verfügung stehen. Der Einsatz von Open SQL hat noch andere Vorteile, es gibt beispielsweise statische Syntaxprüfung und Pufferung durch den SAP-Kernel. Der Anbieter empfiehlt folgerichtig den Gebrauch, es sei denn, jemand möchte spezielle Features der Datenbank nutzen und kommt mit Open SQL nicht weiter. Das kann beispielsweise passieren, wenn er Tabellen ansprechen will, die nicht im ABAP Dictionary eingetragen sind. In einem solchen Fall oder wenn der Entwickler spezielle Features der Datenbank nutzen möchte, hilft nur Native SQL weiter.