CORS
CORS (Cross-Origin Resource Sharing) ist ein Browser-Sicherheitsmechanismus, der regelt, ob Webseiten Daten von einer anderen Domain per JavaScript abrufen dürfen.
Kurz erklärt
Browser verhindern standardmäßig, dass JavaScript auf einer Website die Antwort einer Anfrage an eine andere Domain lesen kann (Same-Origin Policy) - die Anfrage selbst wird dabei oft trotzdem gesendet. CORS ist der Mechanismus, mit dem ein Server explizit erlauben kann, dass Seiten von bestimmten anderen Ursprüngen (Origins) auf seine Ressourcen zugreifen - gesteuert über HTTP-Header wie Access-Control-Allow-Origin.
Beispiel
Eine Webanwendung unter app.beispiel.de möchte Daten von api.beispiel.de abrufen. Damit der Browser die Antwort nicht blockiert, muss die API im Antwort-Header Access-Control-Allow-Origin: https://app.beispiel.de (oder *) senden.
Warum ist das relevant?
CORS-Fehler gehören zu den häufigsten Stolpersteinen bei der Integration von Frontend und API, besonders wenn beide auf unterschiedlichen Subdomains oder Domains laufen. Falsch konfiguriertes CORS (z. B. * bei sensiblen, authentifizierten Endpunkten) kann zudem ein Sicherheitsrisiko darstellen.
Häufige Missverständnisse
CORS ist kein serverseitiger Schutzmechanismus gegen Angriffe - es ist eine Browser-seitige Beschränkung. Server-zu-Server-Anfragen sind von CORS nicht betroffen, da die Same-Origin Policy ausschließlich im Browser durchgesetzt wird.