Lokal & kontrolliert
BEGRIFF

CORS (Cross-Origin Resource Sharing)

Die Regel, mit der ein Server erlaubt, dass Skripte fremder Websites seine Antworten lesen — eine gezielte Lockerung der Regel der gleichen Herkunft.

Auch bekannt als: Access-Control-Allow-Origin

In Ruhe erklärt

Browser trennen Websites voneinander: Ein Skript auf der einen darf die Antworten einer anderen nicht lesen. Das ist die Regel der gleichen Herkunft, und sie ist der Grund, warum eine beliebige Seite nicht dein Mailpostfach in einem anderen Tab auslesen kann.

Manchmal soll eine fremde Seite lesen dürfen, etwa bei einer öffentlichen Schnittstelle. Dafür sendet der Server Access-Control-Allow-Origin mit der Herkunft, die lesen darf, oder mit einem Stern für alle. Sollen dabei Cookies oder Anmeldedaten mitgehen, muss er die Herkunft ausdrücklich nennen und Access-Control-Allow-Credentials auf true setzen; ein Stern ist dann nicht erlaubt.

Gefährlich wird es, wenn ein Server einfach jede anfragende Herkunft zurückschreibt und zugleich Anmeldedaten zulässt. Dann darf jede Seite der Welt im Namen angemeldeter Besucher lesen.

Warum das zählt

Weil CORS oft falsch verstanden wird: Es ist keine Schutzmaßnahme, die man einschaltet, sondern eine Ausnahme von einem Schutz, die man bewusst und eng halten muss.

Was es nicht bedeutet

Die häufigsten Irrtümer — auch auf seriösen Seiten.
  • CORS schützt den Server nicht vor Anfragen: Einfache Anfragen schickt der Browser trotzdem ab und hält nur die Antwort zurück; bei anderen fragt er vorher nach. Wer ohne Browser anfragt, ist an CORS ohnehin nicht gebunden.
  • Ein Stern ist für öffentliche Daten ohne Anmeldung in Ordnung. Die Herkunft null sollte man nie erlauben, denn jede Seite kann sich diese Herkunft verschaffen.