Cross-Origin Resource Sharing
CORS steuert im Browser die Freigabe von Antworten über Origin-Grenzen. Es ersetzt weder die Anmeldung noch die Berechtigungsprüfung einer API.
Antworten für einen anderen Origin freigeben
Cross-Origin Resource Sharing, kurz CORS, ist ein Verfahren mit HTTP-Headern. Ein Server gibt damit an, von welchen anderen Origins aus Browsercode auf seine Antworten zugreifen darf. Ein Origin umfasst Protokoll, Host und Port. Die Durchsetzung erfolgt im Browser; CORS ist keine Anmeldung an der API.
Portal und API getrennt betrachten
Ein fiktives Portal unter https://portal.example möchte Projektdaten von https://api.example/projects lesen. Die API kann den Portal-Origin mit Access-Control-Allow-Origin freigeben. Abhängig von Methode und Headern fragt der Browser vorher mit OPTIONS an, ob der eigentliche Aufruf erlaubt ist. Eine solche Vorabprüfung heißt Preflight; sie findet nicht bei jedem Aufruf statt.
Bei anderen Aufrufen kann die Anfrage bereits beim Server ankommen, obwohl der Browser die Antwort anschließend nicht für das Skript freigibt. Eine CORS-Fehlermeldung beweist deshalb nicht, dass serverseitig nichts passiert ist.
Sollen Sitzungscookies mitgesendet werden, müssen auch die Einstellungen für Zugangsdaten zusammenpassen. Statt des Platzhalters * ist bei solchen Antworten ein ausdrücklicher Origin nötig; zusätzlich ist Access-Control-Allow-Credentials relevant. Die Cookie-Regeln des Browsers gelten weiterhin. Unabhängig davon prüft die API Identität und Rechte für die angefragten Projektdaten.
Quellen
Verwandte Begriffe
- Same-Origin PolicyDie Same-Origin Policy begrenzt im Browser den Zugriff zwischen unterschiedlichen Origins. Ein anderer Seitenpfad allein erzeugt noch keinen neuen Origin.
- Cross-Site Request Forgery (CSRF)Bei CSRF wird eine angemeldete Sitzung für eine unerwünschte Anfrage ausgenutzt. Das Sitzungscookie allein belegt keinen beabsichtigten Auftrag.
- SameSite-CookieSameSite beeinflusst das Mitsenden von Cookies bei websiteübergreifenden Anfragen. Die Wahl muss zu Anmeldung und Navigation passen; CSRF-Schutz bleibt nötig.
- Server-Sent EventsServer-Sent Events übertragen über eine HTTP-Verbindung Textmeldungen vom Server zum Client, etwa zum Fortschritt eines Hintergrundauftrags.
- Entity TagEin ETag kennzeichnet eine bestimmte Darstellungsversion einer HTTP-Ressource und ermöglicht bedingte Abrufe oder Änderungen.
- Electronic Data InterchangeEDI überträgt strukturierte Geschäftsdokumente zwischen Systemen. Format, Partnerprofil, Datenzuordnung und Rückmeldungen müssen zusammenpassen.
Ihr Vorhaben mit ASES
Beschreiben Sie uns Ihr Vorhaben. Wir melden uns mit einer ersten Einschätzung.