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.
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
Ziel-URL eingeben
Fügen Sie den zu testenden Endpunkt ein (z.B. https://api.example.com/resource).
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.
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.
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.
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.
| Einstellung | Verhalten | Standard |
|---|---|---|
| Prüfmodus | Automatisch, Einfache Anfrage oder Nur Preflight | Automatisch |
| Preflight ausführen (OPTIONS) | Wenn aktiviert, führt eine OPTIONS-Preflight-Simulation durch | Aktiviert |
| Ursprung | Origin-Header-Wert für Analyse/Preflight | https://example.com |
| Anfragemethode | Access-Control-Request-Method Wert für Preflight | GET |
| Anfrage-Header | Access-Control-Request-Headers (kommagetrennt) für Preflight | Leer |
| Weiterleitungen folgen | Folgt der Weiterleitungskette zur endgültigen URL | Aktiviert |
| Maximale Weiterleitungen | Weiterleitungslimit zur Vermeidung von Schleifen | 10 (Bereich 0–20) |
| Timeout | Anfrage-Timeout-Limit | 15000 ms |
| User-Agent | Identifiziert den User-Agent der Anfrage | Encode64Bot/1.0 (+https://encode64.com) |
| Private Netzwerke | Blockiert aus Sicherheitsgründen den Zugriff auf private Netzwerkbereiche | Deaktiviert (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.
| Header | Zweck |
|---|---|
| Access-Control-Allow-Origin | Welche Ursprünge erlaubt sind |
| Access-Control-Allow-Credentials | Ob Cookies/Anmeldedaten erlaubt sind (erfordert nicht-wildcard Ursprung) |
| Access-Control-Allow-Methods | Für Cross-Origin-Anfragen erlaubte Methoden (wichtig für Preflight) |
| Access-Control-Allow-Headers | Erlaubte Header (wichtig für Authorization und benutzerdefinierte Header) |
| Access-Control-Expose-Headers | Welche Header vom Browser-JS lesbar sind |
| Access-Control-Max-Age | Wie lange Preflight vom Browser zwischengespeichert werden kann |
| Vary | Cache-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üfung | Warum es wichtig ist |
|---|---|
| Wildcard + Anmeldedaten | Access-Control-Allow-Origin: * kann nicht mit Anmeldedaten verwendet werden; Browser blockieren dies oder das Verhalten ist unsicher |
| Fehlendes Vary: Origin | Wenn Antworten pro Origin variieren, aber nicht korrekt zwischengespeichert werden, können gemeinsame Caches Antworten über Websites hinweg vermischen |
| Origin-Reflektion | Blindes Zurückspiegeln des Origins kann unbeabsichtigt nicht vertrauenswürdige Origins erlauben |
| Null-Origin-Warnungen | Origin: null kann in gesandboxten iFrames oder Dateikontexten auftreten; dies zu erlauben ist oft riskant |
| Fehlende Allow-Methods / Allow-Headers | Preflight kann fehlschlagen, wenn der Server Methode/Header nicht explizit erlaubt |
| Zu breite Allow-Headers | Zu viele Header zu erlauben kann die Angriffsfläche vergrößern |
| Fehlendes Max-Age | Preflight kann zu häufig ausgeführt werden, was Latenz erhöht |
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/resourceNach 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/privatePreflight 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.comNü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.HeadersZeigt Access-Control-* Header an, falls vorhanden.
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?
❓Warum ist "Access-Control-Allow-Origin: *" mit Anmeldedaten gefährlich?
❓Warum benötige ich Vary: Origin?
❓Kann CORS meine API vor Nicht-Browser-Clients schützen?
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?
❓Ist es sicher, hier URLs einzufügen?
Pro Tips
Bevorzugen Sie eine Allowlist vertrauenswürdiger Ursprünge, anstatt jeden Origin zu spiegeln. Behandeln Sie CORS als sicherheitskritische Konfiguration.
Wenn Sie Cookies/Auth verwenden, setzen Sie Access-Control-Allow-Credentials: true UND geben Sie einen expliziten Ursprung zurück (nicht "*").
Fügen Sie Vary: Origin hinzu, wenn Sie mehrere Ursprünge erlauben oder den erlaubten Ursprung dynamisch auswählen.
Fügen Sie ein angemessenes Access-Control-Max-Age hinzu, um die Preflight-Latenz für stabile APIs zu reduzieren.
Testen Sie sowohl den Preflight- als auch den eigentlichen Anfragepfad; einige Setups geben korrekte Header für GET zurück, scheitern aber bei OPTIONS.
Exportieren Sie JSON-Berichte und bewahren Sie sie zusammen mit API-Gateway-Konfigurationsänderungen auf, um Regressionen schnell zu erkennen.
Additional Resources
Other Tools
- CSS-Verschönerer
- HTML-Verschönerer
- JavaScript-Verschönerer
- PHP-Verschönerer
- Farbauswahl
- Sprite-Extraktor
- Base32-Binärcodierer
- Base32-Decoder
- Base32-Codierer
- Base58-Binärcodierer
- Base58-Decoder
- Base58-Codierer
- Base62-Binärcodierer
- Base62-Decoder
- Base62-Codierer
- Base64-Binärcodierer
- Base64-Decoder
- Base64-Encoder
- Hex-Binärcodierer
- Hex-Decoder
- Hex-Codierer
- Csharp-Formatierer
- CSV-Formatierer
- Dockerfile Formatter
- Elm-Formatierer
- ENV-Formatierer
- Go-Formatierer
- GraphQL-Formatierer
- HCL-Formatierer
- INI-Formatierer
- JSON-Formatierer
- LaTeX-Formatierer
- Markdown-Formatierer
- Objective-C-Formatierer
- Php Formatter
- Proto-Formatierer
- Python-Formatierer
- Ruby-Formatierer
- Rust-Formatierer
- Scala-Formatierer
- Shell-Skript-Formatierer
- SQL-Formatierer
- SVG-Formatierer
- Swift-Formatierer
- TOML-Formatierer
- Typescript Formatter
- XML-Formatierer
- YAML-Formatierer
- Yarn-Formatierer
- CSS-Minifizierer
- Html Minifier
- Javascript Minifier
- JSON-Minifizierer
- XML-Minifizierer
- Cache Headers Analyzer
- Csp Analyzer
- Dns Records Lookup
- HTTP-Header-Betrachter
- Http Status Checker
- Open Graph Meta Checker
- Redirect Chain Viewer
- Robots Txt Tester
- Security Headers Checker
- Security Txt Checker
- Sitemap Url Inspector
- Tls Certificate Checker
- PDF zu Text
- Regex-Tester
- SERP-Rang-Prüfer
- Whois-Abfrage