CORS-Header

Wie kann ich CORS-Header setzen und wofür benötige ich diese?

Was ist CORS?

CORS ist eine empfehlende Richtline, welche durch zusätzliche HTTP-Header einem Browser mitteilt, dass ihm die Berechtigung erteilt wurde, auf ausgewählte Ressourcen eines anderen Server zuzugreifen. Der Cross-Origin-Request ist somit ein Scriptzugriff durch eine Webseite, um Daten von einem weiteren Server zu laden.

Einfaches Beispiel:
Eine HTML-Seite wird von einem Server über die Domain https://www.seite-eins.de bereitgestellt. Diese HTML-Seite enthält eine Script-Anweisung, welches eine Datei lädt, dessen URL auf einen anderen Server verweist https://www.seite-zwei.de/datei.zip. Dies wäre ein Cross-Origin-Request, welcher nur mit bestimmten CORS-Headern und Bedingungen ausgeführt wird.

Zugriffe dieser Art sind normalerweise durch die Same-Origin-Policy (SOP) untersagt, denn wer eine Website aufruft, sollte keine Daten von fremden Servern laden.

Was ist die SOP?

Die Same-Origin-Policy ist ein Sicherheitskonzept, welches verschiedenen Scriptsprachen wie zum Beispiel JavaScript verbietet, auf Daten zuzugreifen, welche von einer anderen Webseite stammen und deren Speicherort nicht dem gleichen Ursprung entsprechen. Sie stellt dadurch ein wesentliches Sicherheitselement zum Schutz des Anwenders vor Angriffen dar.

In diesen Fällen kommt dann CORS als Kompromiss zum Einsatz.

Wie setze ich CORS ein?

Um die gewünschten Header zu erzeugen, kannst du die Header in der .htaccess-Datei definieren und beim Aufruf der Domain übergeben. Hierbei ist darauf zu achten, CORS so restriktiv und limitierend einzusetzen wie möglich.

Die nachfolgenden Zeilen für deine .htaccess-Datei sollten für den Einsatzzweck nochmals angepasst und überprüft werden. Nicht alle Optionen sind eventuell nötig!

# CORS-HEADER

Header set Access-Control-Allow-Origin "https://externe.quelle"
Header set Access-Control-Allow-Methods "GET,PUT,POST,DELETE"
Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
Vor- und Nachteile von CORS

CORS dient also dazu, die grundsätzlich sichere Grundeinstellung Same-Origin-Policy zu umgehen. Die Same-Origin-Policy ist ein unerlässliches Mittel, um potenziell gefährliche Verbindungen zu unterbinden. Viele Verbindungen basieren aber auf solchen Cross-Origin-Requests und oftmals sind diese Verbindungen von einem Host zum anderen durchaus geplant und gewünscht.

CORS bietet somit einen sicheren Kompromiss für Situationen, bei welchen Cross-Origin-Requests ausdrücklich gewünscht sind. Durch falsche Einstellungen oder durch die Verwendung von WildCards besteht jedoch die Gefahr, jeglichen Schutz durch die SOP auszuhebeln. Es ist deshalb wichtig, darauf zu achten, Cross-Origin-Requests nur in ausgewählten Situationen einzusetzen und CORS so limitierend wie möglich zu konfigurieren.

Zuletzt geändert: 1. Dezember 2020

War dieser Artikel hilfreich?

Empfohlene Artikel

Brauchst du Unterstützung?
Du kannst die gesuchte Antwort nicht finden?
Support kontaktieren