Skip to main content

Aufbau von Web-Applikationen

Web-Applikationen (Online-Applikationen) ermöglichen die Zusammenarbeit zwischen Nutzern und Dienstanbietern über das Internet. Typischer Aufbau:
  • Zugriff über HTTP/HTTPS
  • Bereitstellung über Webserver (z. B. Apache HTTP Server oder Microsoft IIS)
  • Entwicklung mit Technologien wie:
    • .NET
    • PHP
    • JSP
    • Python
  • Speicherung der Daten in SQL-Datenbanken
Der Zugriff erfolgt über eine URL (Uniform Resource Locator).
https://max:muster@www.example.com:8080/index.html?p1=A&p2=B#resource

Funktionale Infrastruktur

Clientseitige Infrastruktur (Browser)

Die clientseitige Infrastruktur läuft auf dem Gerät des Benutzers. Der Webbrowser übernimmt:
  • Darstellung von HTML, CSS und JavaScript
  • Verarbeitung von Benutzereingaben
  • Kommunikation mit dem Server über HTTP/HTTPS
Forward Proxy (im Unternehmensnetzwerk) Ein Forward Proxy kann den Internetverkehr kontrollieren.

Caching

Schnellere Ladezeiten

Regelbasiertes Surfen

Zugriffsbeschränkung

Protokollierung

Nachverfolgung von Zugriffen

Content Filtering

Prüfung auf Schadcode

Serverseitige Infrastruktur

Eine sichere Webapplikation besteht aus mehreren Sicherheits- und Verarbeitungsschichten.
Abbildung
  • Schützt Netzwerk vor unbefugtem Zugriff
  • Erlaubt nur notwendige Ports (z. B. 80 und 443)
Server befinden sich oft in einer DMZ (Demilitarized Zone), um interne Netzwerke zu schützen.
  • Verschlüsselt und entschlüsselt den Datenverkehr zwischen Client und Server
  • Schützt Daten während der Übertragung
Eine Web Application Firewall schützt Webapplikationen vor typischen Angriffen wie:
  • Cross-Site Scripting
  • SQL-Injection
  • CSRF
Sie analysiert den Datenverkehr auf Anwendungsebene (Layer 7).
  • Sorgt für Authentifizierung
  • Verwaltet Benutzersitzungen
  • Nimmt Anfragen von Clients entgegen
  • Liefert statische Inhalte (HTML, Bilder)
  • Leitet dynamische Anfragen an Backend weiter
  • Verbessert Performance durch Caching
Der Applikationsserver führt die Geschäftslogik der Anwendung aus.
  • Verarbeitung von Benutzeranfragen
  • Eingabevalidierung
  • Authentifizierung
  • Kommunikation mit Datenbanken
Die Datenbank speichert und verwaltet Daten der Anwendung. Sie bietet Mechanismen für:
  • Datenintegrität
  • Zugriffskontrolle
  • Verschlüsselung
Ein Reverse Proxy befindet sich vor dem Webserver und schützt die Infrastruktur.
  • Filterung von Anfragen
  • Caching und Komprimierung
  • TLS/SSL-Verarbeitung
  • Benutzerauthentifizierung
  • Load Balancing
Für den Benutzer ist der Proxy unsichtbar.

Sicherheitsrisiken und Herausforderungen

Viele Angriffe nutzen bekannte Schwachstellen aus.
Einschleusen von Schadcode in Webseiten
Manipulation von Datenbankabfragen
Abhören von Netzwerkverkehr
Manipulation der Kommunikation
Täuschung von Benutzern

Hauptursache

Die meisten Sicherheitslücken entstehen durch Programmierfehler. Studien zeigen, dass etwa 75 % der Hackerangriffe direkt Webapplikationen betreffen und nicht das Netzwerk. Daher sollte Sicherheit bereits während der Softwareentwicklung berücksichtigt werden.

Qualität vs. Sicherheit

Nicht jeder Fehler ist gleich.
Abbildung
KategorieBeschreibung
Quality FaultFunktion fehlt oder funktioniert nicht
WorksAnwendung erfüllt Anforderungen
Security FaultUngeplante Eigenschaften ermöglichen Angriffe
Ein Sicherheitsproblem ist also nicht unbedingt ein Programmfehler, sondern kann auch eine unerwartete Funktion sein.

Bedeutung von Tests

Neben funktionalen Tests sind auch nicht-funktionale Tests wichtig: Sicherheitstests, Lasttests, Usabilitytests, Recoverytests. Diese helfen, Schwachstellen frühzeitig zu erkennen und zu beheben.