Das ist die Diagnose einer einzelnen Anfrage, kein Header-Abzug. Sie beschreiben den Aufruf, den Ihr Code macht - den Endpunkt, die Origin, auf der er läuft, die Methode, die gesetzten Header, ob er Credentials sendet - und das Tool sagt, ob ein Browser Sie die Antwort lesen ließe und welche Prüfung genau das entschieden hat.
Was während eines Durchlaufs wirklich passiert
- Vorbereiten der Anfrage genau wie beschrieben.
- Klassifizieren als einfach oder preflight-pflichtig, nach den Regeln des Fetch-Standards, die ein Browser anwendet.
- Preflight testen mit einer echten OPTIONS-Anfrage mit Origin, Access-Control-Request-Method und, wo nötig, Access-Control-Request-Headers.
- Die eigentliche Anfrage senden, denn der Preflight allein zeigt die CORS-Header der echten Antwort nie.
- Die Origin-Allowlist testen mit einer zusätzlichen Anfrage von einer Origin, die der Server nie gesehen hat.
- Den Bericht bauen: Urteil, Anfrageverlauf, Header, Befunde und der technische Austausch.
Der Allowlist-Test
Ein Server, der jeder Origin dieselbe Origin zurückgibt, sieht genauso aus wie eine korrekt konfigurierte Allowlist, solange Sie nur Ihre eigene testen. Eine Anfrage von einer Origin, die der Server nie gesehen hat, trennt die beiden Fälle, und das zählt, weil ein spiegelnder Server zusammen mit Credentials genau die Konfiguration ist, die eine Antwort für jede Seite lesbar macht, die der Nutzer besucht.
Credentials ändern die Regeln
| Header | Mit Credentials |
|---|
| Access-Control-Allow-OriginKein Sternchen | Muss die Origin nennen. Ein Sternchen wird rundweg abgelehnt, auch neben Access-Control-Allow-Credentials: true. |
| Allow-Methods, Allow-Headers, Expose-HeadersWörtlich | Ein Sternchen ist kein Platzhalter mehr und wird als wörtlicher Header- oder Methodenname gelesen. |
| Access-Control-Allow-CredentialsErforderlich | Der einzige akzeptierte Wert ist die exakte Kleinschreibung true. |
Befunde, keine Adjektive
Jeder Befund trägt einen Schweregrad, eine Kategorie, die Phase, aus der er stammt, den Beleg, auf dem er beruht, die betroffenen Header und eine Empfehlung. Die bestandenen Prüfungen stehen ebenfalls da, ein sauberes Ergebnis ist also sichtbar und nicht bloß leer. Zwei Regeln, denen die Empfehlungen folgen, weil der naheliegende Rat oft der falsche ist: nichts hier fordert Sie auf, eine Methode, einen Header oder eine Origin zu öffnen, nur damit ein rotes Feld verschwindet - ein blockiertes DELETE kann ein korrekt abgeriegelter Endpunkt sein - und nichts hier schlägt je vor, eine beliebige Origin zurückzuspiegeln. Die Antwort ist jedes Mal eine Allowlist.
Was es nicht behauptet
CORS entscheidet, welche Origins eine Antwort innerhalb eines Browsers lesen dürfen. Es ist keine Authentifizierung, es vergibt keine Berechtigungen, und es verhindert keine Cross-Site Request Forgery, denn ein CSRF-Angriff muss die Antwort nie lesen. Jeder Client, der kein Browser ist, ignoriert es vollständig. Dieses Tool sagt das ausdrücklich, statt ein grünes Urteil andeuten zu lassen, Ihr Endpunkt sei geschützt.