Wie implementiert man eine effektive CORS-Konfiguration in einer Multi-Domain-Umgebung, ohne die Sicherheit durch Wildcards zu gefährden?

Die Implementierung einer sicheren CORS-Strategie in Multi-Domain-Umgebungen erfolgt über eine dynamische Validierung der Origin-Header gegen eine definierte Whitelist. Da der Browser bei einer Anfrage mit Access-Control-Allow-Credentials: true keine Wildcards (*) akzeptiert, ist eine präzise Zuweisung der erlaubten Domain notwendig.

Wir setzen hierfür eine Middleware ein, die den Prozess in drei Schritten steuert:

  1. Extraktion: Der Server liest den Origin-Header der eingehenden HTTP-Anfrage aus.
  2. Validierung: Dieser Wert wird mit einer Liste autorisierter Domains abgeglichen. Diese Liste wird je nach Infrastruktur in einer Konfigurationsdatei, einer Umgebungsvariable oder einer Datenbank hinterlegt.
  3. Zuweisung: Wenn der Origin in der Whitelist enthalten ist, wird exakt dieser Wert im Header Access-Control-Allow-Origin zurückgegeben. Ist der Origin nicht gelistet, wird die Anfrage entweder mit einem Fehler abgelehnt oder der Header bleibt leer, was den Browser den Zugriff verweigern lässt.

Die folgende Tabelle verdeutlicht die Unterschiede zwischen den gängigen Ansätzen:

MethodeSicherheitFlexibilitätEignung
Wildcard (*)GeringHochÖffentliche, zustandslose APIs
Statische DomainHochGeringSingle-Domain-Architekturen
Dynamische WhitelistHochHochEnterprise Multi-Domain-Setups

Für die technische Umsetzung in modernen Cloud-Infrastrukturen integrieren wir diese Logik oft direkt in den API-Gateway oder die Load-Balancer-Schicht, um die Applikationsserver zu entlasten. Dies ist ein Standardbestandteil unserer Strategien im Bereich Cloud & Digital Workplace, um Latenzen zu minimieren und die Angriffsfläche zu reduzieren.

Zusätzlich müssen die Access-Control-Allow-Methods und Access-Control-Allow-Headers strikt auf die tatsächlich benötigten Verben (z. B. GET, POST, PUT) und Header (z. B. Content-Type, Authorization) begrenzt werden.

Wir empfehlen, die CORS-Konfiguration niemals auf Applikationsebene durch einfache String-Vergleiche zu lösen, sondern eine reguläre Ausdrücke (Regex) basierte Validierung zu nutzen, die Subdomains präzise steuert. Die dynamische Whitelist ist die einzige professionelle Lösung, die sowohl die funktionalen Anforderungen einer Multi-Domain-Umgebung erfüllt als auch die Sicherheitsintegrität der API wahrt.

Sergej Wiens

Sergej Wiens

Gründer & Software Architekt