CORS ist das Verfahren, mit dem ein Server Zugriffe von fremden Adressen gezielt erlaubt. Die Abkürzung steht für Cross-Origin Resource Sharing.
- CORS
Das Verfahren, mit dem ein Server Zugriffe von fremden Adressen gezielt erlaubt.
Beispiel: „Ohne CORS lehnt der Browser die Antwort der Schnittstelle ab.“Auch: Cross-Origin Resource Sharing. Die Erlaubnis steht in Kopfzeilen der Antwort, allen voran
Access-Control-Allow-Origin.Abgrenzung zur Same-Origin-Policy: Die ist die Grundregel, die alles verbietet. CORS ist die Ausnahme, die der Server selbst erteilt.
Wie CORS arbeitet
Über Kopfzeilen und bei heiklen Anfragen über einen Vorabcheck. Bei einer einfachen Anfrage schickt der Browser die Herkunft mit und prüft in der Antwort, ob sie erlaubt ist; passt es nicht, liefert er die Antwort nicht an das Skript aus. Bei allem, was verändern könnte, fragt er vorher mit einer eigenen Anfrage nach, welche Methoden und Kopfzeilen erlaubt sind.
Warum der Stern gefährlich ist
Weil er jede Herkunft erlaubt. Access-Control-Allow-Origin: * ist die Einstellung, die jeden Fehler verschwinden lässt, und genau deshalb steht sie in so vielen Anleitungen. Für eine öffentliche Schnittstelle ohne Anmeldung ist sie vertretbar; sobald Zugangsdaten im Spiel sind, ist sie es nicht, und in Verbindung mit Allow-Credentials lehnt der Browser sie ohnehin ab. Die richtige Antwort ist eine Liste der Herkünfte, die wirklich zugreifen sollen.
Was CORS nicht leistet
Es schützt den Server nicht. CORS ist eine Regel im Browser und gilt nur dort; ein Aufruf von der Kommandozeile oder aus einem anderen Programm ignoriert sie vollständig. Wer glaubt, seine Schnittstelle sei durch CORS geschützt, verwechselt eine Anzeigeregel mit einer Zugangskontrolle. Der Schutz des Servers bleibt die Aufgabe von Anmeldung und Rechten.