CORS-Prüfer

Überprüfen Sie die Cross-Origin Resource Sharing (CORS)-Konfiguration für jede URL. Inspizieren Sie Access-Control-*-Antwortheader, führen Sie eine optionale Preflight (OPTIONS)-Anfrage mit einem benutzerdefinierten Origin/Method/Header aus und erkennen Sie häufige Fehlkonfigurationen wie Wildcard + Credentials, fehlendes Vary: Origin oder zu weit gefasste Allow-Headers.

Loading…

Über CORS-Checker

Fügen Sie eine API- oder Seiten-URL ein und prüfen Sie, ob Browser Cross-Origin-Anfragen zulassen. Dieses Tool analysiert CORS-Antwortheader, kann einen realistischen Preflight (OPTIONS)-Check durchführen und hebt riskante oder fehlerhafte Konfigurationen hervor (wie "*" mit Credentials, fehlendes Vary: Origin oder schwache Allow-Methods/Allow-Headers).

Funktionen

  • CORS-Header-Inspektion für jede öffentliche URL (Access-Control-*- und verwandte Header).
  • Optionale Preflight-Simulation (OPTIONS) mit benutzerdefiniertem Origin, Anfragemethode und Anfrageheadern.
  • Weiterleitungen folgen (bis zu 10), sodass Sie den finalen Endpunkt validieren, den Browser tatsächlich erreichen.
  • Rohdaten-Header-Ansicht für volle Transparenz und Debugging.
  • Ergebnisse + Scorecard mit "Nur Probleme"-Filterung für schnelle Priorisierung.
  • Vary-Analyse, um fehlendes Vary: Origin und andere cachebezogene CORS-Fallen zu erkennen.
  • Ergebnisse als JSON- und PDF-Berichte exportieren für Audits, Tickets und Dokumentation.
  • Integrierte Empfehlungen für häufige Probleme: Wildcard+Credentials, Origin-Reflektion, Null-Origin, fehlende Allow-Methods/Allow-Headers, fehlendes Max-Age und zu weit gefasste Allow-Headers.

🧭 So verwenden Sie es for cors-checker

1

Ziel-URL eingeben

Fügen Sie den zu testenden Endpunkt ein (z.B. https://api.example.com/resource).

2

Den Origin festlegen, von dem aus Sie testen

Geben Sie den Origin Ihrer Frontend-App ein (Schema + Host), z.B. https://app.example.com. Dies ist der Wert, den Browser im Origin-Header senden.

3

Prüfmodus auswählen

Verwenden Sie Auto (empfohlen), um sowohl Antwortheader als auch Preflight-Verhalten zu analysieren. Verwenden Sie Simple request, wenn Sie speziell ein Nicht-Preflight-Szenario möchten, oder Preflight only, um OPTIONS-Checks durchzuführen.

4

Preflight-Details konfigurieren (falls zutreffend)

Aktivieren Sie "Preflight (OPTIONS) ausführen" und legen Sie Anfragemethode sowie Anfrageheader (kommagetrennt) fest, um echtes Browser-Preflight-Verhalten zu simulieren (z.B. Authorization, Content-Type). Schalten Sie "Credentials berücksichtigen" um, wenn Ihr Anwendungsfall Cookies oder Auth-Header enthält.

5

Ergebnisse prüfen und exportieren

Überprüfen Sie die Ergebnisse/Scorecard und die CORS-Analysedetails. Schalten Sie "Rohdaten-Header anzeigen" beim Debugging ein. Exportieren Sie JSON/PDF zum Teilen oder für Audits.

Technische Spezifikationen

Anfragemodell

Das Tool inspiziert CORS-Header für eine Ziel-URL und kann optional eine Preflight (OPTIONS)-Anfrage mit dem angegebenen Origin, der Methode und den angeforderten Headern durchführen. Das Folgen von Weiterleitungen wird unterstützt.

EinstellungVerhaltenStandard
PrüfmodusAutomatisch, Einfache Anfrage oder Nur PreflightAutomatisch
Preflight ausführen (OPTIONS)Wenn aktiviert, führt eine OPTIONS-Preflight-Simulation durchAktiviert
UrsprungOrigin-Header-Wert für Analyse/Preflighthttps://example.com
AnfragemethodeAccess-Control-Request-Method Wert für PreflightGET
Anfrage-HeaderAccess-Control-Request-Headers (kommagetrennt) für PreflightLeer
Weiterleitungen folgenFolgt der Weiterleitungskette zur endgültigen URLAktiviert
Maximale WeiterleitungenWeiterleitungslimit zur Vermeidung von Schleifen10 (Bereich 0–20)
TimeoutAnfrage-Timeout-Limit15000 ms
User-AgentIdentifiziert den User-Agent der AnfrageEncode64Bot/1.0 (+https://encode64.com)
Private NetzwerkeBlockiert aus Sicherheitsgründen den Zugriff auf private NetzwerkbereicheDeaktiviert (private Netzwerke nicht erlaubt)

Analysierte Header (Kern-CORS-Satz)

Der Analysator konzentriert sich auf standardmäßige CORS-Antwort- und Anfrage-Header, die von Browsern und Preflight-Prüfungen verwendet werden.

HeaderZweck
Access-Control-Allow-OriginWelche Ursprünge erlaubt sind
Access-Control-Allow-CredentialsOb Cookies/Anmeldedaten erlaubt sind (erfordert nicht-wildcard Ursprung)
Access-Control-Allow-MethodsFür Cross-Origin-Anfragen erlaubte Methoden (wichtig für Preflight)
Access-Control-Allow-HeadersErlaubte Header (wichtig für Authorization und benutzerdefinierte Header)
Access-Control-Expose-HeadersWelche Header vom Browser-JS lesbar sind
Access-Control-Max-AgeWie lange Preflight vom Browser zwischengespeichert werden kann
VaryCache-Schlüsselvariation (z.B. Vary: Origin) zur Vermeidung von Cache Poisoning/Vermischung
Origin / Access-Control-Request-*Wird verwendet, um Preflight-Verhalten zu simulieren

Heuristiken (häufige CORS-Fallstricke markiert)

Die Ergebnisse basieren auf praktischen und sicherheitsorientierten Prüfungen, um fehlerhafte oder riskante CORS-Konfigurationen zu erkennen.

PrüfungWarum es wichtig ist
Wildcard + AnmeldedatenAccess-Control-Allow-Origin: * kann nicht mit Anmeldedaten verwendet werden; Browser blockieren dies oder das Verhalten ist unsicher
Fehlendes Vary: OriginWenn Antworten pro Origin variieren, aber nicht korrekt zwischengespeichert werden, können gemeinsame Caches Antworten über Websites hinweg vermischen
Origin-ReflektionBlindes Zurückspiegeln des Origins kann unbeabsichtigt nicht vertrauenswürdige Origins erlauben
Null-Origin-WarnungenOrigin: null kann in gesandboxten iFrames oder Dateikontexten auftreten; dies zu erlauben ist oft riskant
Fehlende Allow-Methods / Allow-HeadersPreflight kann fehlschlagen, wenn der Server Methode/Header nicht explizit erlaubt
Zu breite Allow-HeadersZu viele Header zu erlauben kann die Angriffsfläche vergrößern
Fehlendes Max-AgePreflight kann zu häufig ausgeführt werden, was Latenz erhöht
CORS ist ein Browser-Erzwingungsmechanismus. Server können über Cross-Origin weiterhin von Nicht-Browser-Clients erreichbar sein; behandeln Sie CORS als Teil einer umfassenderen Sicherheitsstrategie, nicht als einzige Kontrolle.

Befehlszeile

Verwenden Sie diese Befehle, um CORS- und Preflight-Verhalten von Ihrem Terminal aus zu reproduzieren. Sie sind hilfreich für das Debugging und die Überprüfung der vom Tool gemeldeten Ergebnisse.

macOS / Linux

CORS-Header für eine normale Anfrage prüfen (Browser-Origin simulieren)

curl -i -H "Origin: https://example.com" https://api.example.com/resource

Nach Access-Control-Allow-Origin, Access-Control-Allow-Credentials und Vary suchen.

Eine Preflight-OPTIONS-Anfrage ausführen (Methode + Header)

curl -i -X OPTIONS -H "Origin: https://app.example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: authorization, content-type" https://api.example.com/private

Preflight muss die korrekten Access-Control-Allow-Methods und Access-Control-Allow-Headers zurückgeben, damit der Browser fortfahren kann.

Weiterleitungen beim Überprüfen der Header verfolgen

curl -iL -H "Origin: https://example.com" https://api.example.com

Nützlich, wenn Endpunkte zu einem anderen Host umleiten, der andere CORS-Regeln hat.

Windows (PowerShell)

Antwort-Header mit einem Origin-Header überprüfen

$r = Invoke-WebRequest -Uri https://api.example.com/resource -Headers @{ Origin = "https://example.com" }; $r.Headers

Zeigt Access-Control-* Header an, falls vorhanden.

Wenn Ihr Frontend Cookies oder Authentifizierung verwendet, vermeiden Sie zu permissive CORS. Bevorzugen Sie eine explizite Positivliste vertrauenswürdiger Ursprünge und fügen Sie Vary: Origin hinzu, wenn Antworten je nach Ursprung variieren.

Anwendungsfälle

Einen Frontend-"CORS blockiert"-Browserfehler debuggen

Wenn fetch/XHR mit einem CORS-Fehler fehlschlägt, überprüfen Sie, ob der Server die erforderlichen Access-Control-* Header für Ihren Ursprung und Anfragetyp zurückgibt.

  • Bestätigen, dass Access-Control-Allow-Origin mit Ihrem App-Ursprung übereinstimmt
  • Bei Verwendung von Cookies/Auth prüfen, ob Access-Control-Allow-Credentials true ist (und der Ursprung kein Platzhalter ist)
  • Sicherstellen, dass Vary: Origin vorhanden ist, wenn mehrere Ursprünge erlaubt sind

Preflight für Authorization / benutzerdefinierte Header validieren

Die meisten authentifizierten API-Aufrufe lösen aufgrund von Authorization oder nicht einfachen Inhaltstypen eine Preflight-Anfrage aus. Dieses Tool hilft sicherzustellen, dass OPTIONS-Antworten die erforderliche Methode und Header erlauben.

  • Überprüfen, ob Access-Control-Allow-Methods POST/PUT/PATCH/DELETE nach Bedarf enthält
  • Überprüfen, ob Access-Control-Allow-Headers authorization, content-type und erforderliche X-* Header enthält
  • Fehlende allow-methods/allow-headers vor dem Deployment erkennen

Sicherheitsüberprüfung der CORS-Richtlinie

CORS-Fehlkonfigurationen können private APIs unbeabsichtigt für bösartige Seiten zugänglich machen (insbesondere mit Anmeldedaten). Nutzen Sie die Ergebnisse, um risikoreiche Muster zu erkennen.

  • Platzhalter-Ursprung in Kombination mit Anmeldedaten erkennen
  • Ursprungsreflektionsmuster erkennen, die beliebige Seiten erlauben
  • Erlauben von Origin: null kennzeichnen, wenn nicht beabsichtigt

Leistung durch Caching von Preflight verbessern

Preflight-Anfragen erhöhen Round-Trips und Latenz. Ein korrektes Max-Age kann wiederholte Preflight-Prüfungen für stabile APIs reduzieren.

  • Überprüfen, ob Access-Control-Max-Age vorhanden ist, wenn angemessen
  • Wiederholte OPTIONS-Aufrufe für häufigen API-Verkehr reduzieren

❓ Frequently Asked Questions

Was ist CORS in einfachen Worten?

CORS (Cross-Origin Resource Sharing) ist ein Browser-Sicherheitsmechanismus, der steuert, ob eine Webseite von einem Ursprung (Schema + Host + Port) Antworten von einem anderen Ursprung lesen kann. Es stützt sich auf spezifische Access-Control-* Antwort-Header.

Wann sendet ein Browser eine Preflight (OPTIONS)-Anfrage?

Eine Preflight wird gesendet, wenn die Anfrage nicht "einfach" ist, z.B. bei Verwendung von Methoden wie POST mit bestimmten Inhaltstypen oder beim Senden von Headern wie Authorization oder benutzerdefinierten X-* Headern. Der Browser prüft die Berechtigungen über OPTIONS, bevor die eigentliche Anfrage gesendet wird.

Warum ist "Access-Control-Allow-Origin: *" mit Anmeldedaten gefährlich?

Browser erfordern einen expliziten Ursprung, wenn Anmeldedaten beteiligt sind. Die Verwendung eines Platzhalters mit Anmeldedaten ist für authentifizierte Anfragen ungültig und deutet auf eine riskante Konfiguration hin. Bevorzugen Sie eine explizite Positivliste vertrauenswürdiger Ursprünge.

Warum benötige ich Vary: Origin?

Wenn Ihr Server je nach Anfrage-Ursprung unterschiedliche Access-Control-Allow-Origin-Werte zurückgibt, müssen Caches nach Ursprung variieren, um zu verhindern, dass eine für eine Seite bestimmte Antwort an eine andere ausgeliefert wird. Vary: Origin hilft, Cache-Vermischung und damit verbundene Sicherheitsprobleme zu vermeiden.

Kann CORS meine API vor Nicht-Browser-Clients schützen?

Nein. CORS wird von Browsern durchgesetzt. Skripte, die außerhalb eines Browsers laufen (Server, curl, mobile Apps), können Ihre API unabhängig von CORS aufrufen. Verwenden Sie Authentifizierung, Autorisierung und Ratenbegrenzung für echte Zugriffskontrolle.

Was sollte ich in "Request Headers" eingeben, wenn ich Preflight teste?

Listen Sie die Header auf, die Ihr Frontend senden wird, kommagetrennt (z.B. authorization, content-type, x-request-id). Dies simuliert Access-Control-Request-Headers und prüft, ob der Server sie erlaubt.

Ist es sicher, hier URLs einzufügen?

Das Tool stellt serverseitige Anfragen an die bereitgestellte URL und blockiert Ziele in privaten Netzwerken. Vermeiden Sie Geheimnisse in URLs (wie Token in Query-Strings) und bevorzugen Sie öffentliche Endpunkte, denen Sie vertrauen.

Pro Tips

Security Tip

Bevorzugen Sie eine Allowlist vertrauenswürdiger Ursprünge, anstatt jeden Origin zu spiegeln. Behandeln Sie CORS als sicherheitskritische Konfiguration.

Security Tip

Wenn Sie Cookies/Auth verwenden, setzen Sie Access-Control-Allow-Credentials: true UND geben Sie einen expliziten Ursprung zurück (nicht "*").

Security Tip

Fügen Sie Vary: Origin hinzu, wenn Sie mehrere Ursprünge erlauben oder den erlaubten Ursprung dynamisch auswählen.

Performance Tip

Fügen Sie ein angemessenes Access-Control-Max-Age hinzu, um die Preflight-Latenz für stabile APIs zu reduzieren.

Best Practice

Testen Sie sowohl den Preflight- als auch den eigentlichen Anfragepfad; einige Setups geben korrekte Header für GET zurück, scheitern aber bei OPTIONS.

CI Tip

Exportieren Sie JSON-Berichte und bewahren Sie sie zusammen mit API-Gateway-Konfigurationsänderungen auf, um Regressionen schnell zu erkennen.

Additional Resources

Other Tools