Anwendungsarchitektur

(oder auch Software-Architektur von Web-Anwendungen)

Die Anwendungsarchitektur beschreibt den logischen Aufbau von Web-Anwendungen.

Funktionsweise der 3-schichtigen Architektur

Die 3-schichtige Architektur besteht aus einer Präsentationsschicht, Logikschicht und der Speicherung. Wobei die Logikschicht und Speicherung auf der gleichen oder getrennten Hardware sein können.

Präsentationsschicht Diese Schicht zeigt am PC des Anwenders im Browser die Seite des Webservers dar. Die Anfrage des Browsers wird an die Logikschicht gesendet. Ob die präsentierten Daten einfach nur auf dem Webserver sind oder dynamisch über eine Datenbankabfrage zusammengestellt werden, merkt der Benutzer nicht. Bei einer SQL-Injection ist der Besucher einer Seite derjenige, der auf mehr als nur den Standard-Zugriff aus ist. Er versucht auf den oder die Server zuzugreifen.

Logikschicht

Der Webserver in der Logikschicht nimmt die Anfragen des Benutzers entgegen, führt Skripte aus und gibt ggf. Anfragen an einen Datenbankserver weiter. Die Ergebnisse der Skripte oder der Datenbankanfragen werden dann an den Seitenaufrufer (Präsentationsschicht) zurückgegeben. Um eine SQL-Injection zu verhindern oder einzugrenzen sind an dieser Stelle die sicher programmierten Skripte und Richtlinien gefordert, die eine unkontrollierte Weitergabe von SQL-Befehlen verhindern sollten.

Speicher

In der Speicherschicht sind Daten in einer Datenbank gespeichert. Der Datenbankserver führt die von der Logikschicht weitergegebenen Anfragen aus. Die Ergebnisse werden an die Logikschicht zurückgegeben. Ziel einer SQL-Injection ist der Datenbank-Server, bzw. die darauf befindlichen Daten.

Funktionsweise der 4-schichtigen Architektur

Die 4-schichtige Architektur besteht aus einer Präsentationsschicht, Logikschicht, Anwendungsschicht und der Speicherung. Auch hier können die serverseitigen Schichten auch auf der gleichen oder getrennten Hardware installiert sein.

Präsentationsschicht

Diese Schicht zeigt am PC des Anwenders im Browser die Seite des Webservers dar. Die Anfrage des Browsers wird an die Logikschicht gesendet. Ob die präsentierten Daten einfach nur auf dem Webserver sind oder dynamisch über eine Datenbankabfrage zusammengestellt werden, merkt der Benutzer nicht. Bei einer SQL-Injection ist der Besucher einer Seite derjenige, der auf mehr als nur den Standard-Zugriff aus ist. Er versucht auf den oder die Server zuzugreifen.

Logikschicht

Der Webserver in der Logikschicht nimmt die Anfragen des Benutzers entgegen, führt Skripte aus und gibt ggf. Anfragen an einen Anwendungsserver weiter. Die Ergebnisse der Skripte oder der weitergeleiteten Anfragen werden dann an den Seitenaufrufer (Präsentationsschicht) zurückgegeben. Um eine SQL-Injection zu verhindern oder einzugrenzen sind an dieser Stelle die sicher programmierten Skripte und Richtlinien gefordert, die eine unkontrollierte Weitergabe von Befehlen verhindern sollten.

Anwendungsschicht

In der Anwendungsschicht können Anfragen spezifisch bearbeitet werden. Je nach dem, um was es sich handelt, kann die entsprechende Anwendung (Web-Service) reagieren. Hier werden ggf. SQL-Abfragen an die Speicherschicht weitergegeben. Die Ergebnisse der Anwendungen werden an die Logikschicht zurückgegeben. Um eine SQL-Injection zu verhindern oder einzugrenzen sind an dieser Stelle zu überprüfen, mit welchen Berechtigungen hier die Dienste arbeiten und auf die Speicherschicht zugreifen können.

Speicher

In der Speicherschicht sind Daten in einer Datenbank gespeichert. Der Datenbankserver führt die weitergegebenen Anfragen aus. Die Ergebnisse werden an die Anwendungsschicht zurückgegeben. Ziel einer SQL-Injection ist der Datenbank-Server, bzw. die darauf befindlichen Daten.

Verwendete Quellen: Clarke, Justin. SQL Hacking . München, Germany: Franzis Verlag GmbH,2016. 978-3-645-60466-6