CORS Controle
Controleer de Cross-Origin Resource Sharing (CORS)-configuratie voor elke URL. Inspecteer Access-Control-* antwoordheaders, voer een optioneel preflight (OPTIONS) verzoek uit met een aangepaste Origin/methode/headers, en detecteer veelvoorkomende misconfiguraties zoals wildcard + credentials, ontbrekende Vary: Origin, of te ruime allow-headers.
Functies
- CORS-header inspectie voor elke openbare URL (Access-Control-* en gerelateerde headers).
- Optionele preflight-simulatie (OPTIONS) met aangepaste Origin, verzoekmethode en verzoekheaders.
- Volg omleidingen (tot 10) zodat je het uiteindelijke eindpunt valideert dat browsers daadwerkelijk bereiken.
- Rauwe headers-weergave voor volledige transparantie en debugging.
- Bevindingen + scorekaart met "alleen problemen" filtering voor snelle triage.
- Vary-analyse om ontbrekende Vary: Origin en andere cache-gerelateerde CORS-valkuilen te detecteren.
- Exporteer resultaten als JSON- en PDF-rapporten voor audits, tickets en documentatie.
- Ingebouwde aanbevelingen voor veelvoorkomende problemen: wildcard+credentials, reflecterende Origin, null Origin, ontbrekende allow-methods/allow-headers, ontbrekende max-age, en te ruime allow-headers.
🧭 Hoe te gebruiken for cors-checker
Voer de doel-URL in
Plak het eindpunt dat je wilt testen (bijv., https://api.example.com/resource).
Stel de Origin in waarvan je test
Voer de Origin van je frontend-app in (schema + host), bijv., https://app.example.com. Dit is de waarde die browsers in de Origin-header sturen.
Kies een controlemodus
Gebruik Auto (aanbevolen) om zowel de antwoordheaders als het preflight-gedrag te analyseren. Gebruik Eenvoudig verzoek als je specifiek een niet-preflight scenario wilt, of Alleen preflight om OPTIONS-controles uit te voeren.
Configureer preflight-details (indien van toepassing)
Schakel "Voer Preflight (OPTIONS) uit" in en stel Verzoekmethode plus Verzoekheaders (komma-gescheiden) in om echt browser preflight-gedrag te simuleren (bijv., authorization, content-type). Schakel "Credentials overwegen" in als jouw use case cookies of auth-headers omvat.
Bekijk bevindingen en exporteer
Controleer de bevindingen/scorekaart en de CORS-analyse details. Schakel "Toon Rauwe Headers" in tijdens debugging. Exporteer JSON/PDF voor delen of opslaan in audits.
Technische specificaties
Verzoekmodel
De tool inspecteert CORS-headers voor een doel-URL en kan optioneel een preflight (OPTIONS) verzoek uitvoeren met behulp van de opgegeven Origin, methode en aangevraagde headers. Omleiding volgen wordt ondersteund.
| Instelling | Gedrag | Standaard |
|---|---|---|
| Controlemodus | Automatisch, Eenvoudig verzoek, of Alleen preflight | Automatisch |
| Preflight uitvoeren (OPTIONS) | Indien ingeschakeld, voert een OPTIONS preflight-simulatie uit | Ingeschakeld |
| Oorsprong | Origin-headerwaarde gebruikt voor analyse/preflight | https://example.com |
| Verzoekmethode | Access-Control-Request-Method waarde voor preflight | GET |
| Verzoekheaders | Access-Control-Request-Headers (komma-gescheiden) voor preflight | Leeg |
| Volg omleidingen | Volgt de omleidingsketen naar de uiteindelijke URL | Ingeschakeld |
| Max. omleidingen | Omleidingslimiet om lussen te voorkomen | 10 (bereik 0–20) |
| Time-out | Time-outlimiet voor verzoek | 15000 ms |
| User-Agent | Identificeert de user agent van het verzoek | Encode64Bot/1.0 (+https://encode64.com) |
| Privénetwerken | Blokkeert toegang tot privénetwerkbereiken voor veiligheid | Uitgeschakeld (privénetwerken niet toegestaan) |
Geanalyseerde headers (kern CORS-set)
De analyser richt zich op standaard CORS-antwoord- en verzoekheaders die door browsers en preflight-controles worden gebruikt.
| Header | Doel |
|---|---|
| Access-Control-Allow-Origin | Welke oorsprong(en) zijn toegestaan |
| Access-Control-Allow-Credentials | Of cookies/inloggegevens zijn toegestaan (vereist niet-wildcard oorsprong) |
| Access-Control-Allow-Methods | Methoden toegestaan voor cross-origin-verzoeken (belangrijk voor preflight) |
| Access-Control-Allow-Headers | Toegestane headers (belangrijk voor Authorization en aangepaste headers) |
| Access-Control-Expose-Headers | Welke headers leesbaar zijn door browser-JS |
| Access-Control-Max-Age | Hoe lang preflight door de browser gecached kan worden |
| Vary | Cache-sleutelvariatie (bijv. Vary: Origin) om cachevergiftiging/-vermenging te voorkomen |
| Origin / Access-Control-Request-* | Gebruikt om preflight-gedrag te simuleren |
Heuristieken (veelvoorkomende CORS-valkuilen gemarkeerd)
Bevindingen zijn gebaseerd op praktische en veiligheidsgerichte controles om kapotte of risicovolle CORS-configuraties te detecteren.
| Controle | Waarom het belangrijk is |
|---|---|
| Wildcard + inloggegevens | Access-Control-Allow-Origin: * kan niet worden gebruikt met inloggegevens; browsers blokkeren dit of het gedrag is onveilig |
| Ontbrekende Vary: Origin | Als antwoorden per Origin verschillen maar niet correct gecached worden, kunnen gedeelde caches antwoorden tussen sites mengen |
| Origin weerspiegelen | Origin klakkeloos herhalen kan onbedoeld niet-vertrouwde origins toestaan |
| Null Origin-waarschuwingen | Origin: null kan voorkomen in afgeschermde iframes of bestandscontexten; dit toestaan is vaak riskant |
| Ontbrekende Allow-Methods / Allow-Headers | Preflight kan mislukken als de server de methode/headers niet expliciet toestaat |
| Te ruime Allow-Headers | Te veel headers toestaan kan het aanvalsoppervlak vergroten |
| Ontbrekende Max-Age | Preflight kan te vaak uitgevoerd worden, wat latentie toevoegt |
Opdrachtregel
Gebruik deze opdrachten om CORS- en preflight-gedrag vanuit je terminal te reproduceren. Ze zijn handig voor debuggen en verifiëren wat de tool rapporteert.
macOS / Linux
Controleer CORS-headers voor een normaal verzoek (simuleer een browser-Origin)
curl -i -H "Origin: https://example.com" https://api.example.com/resourceZoek naar Access-Control-Allow-Origin, Access-Control-Allow-Credentials en Vary.
Voer een preflight OPTIONS-verzoek uit (methode + headers)
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 moet de juiste Access-Control-Allow-Methods en Access-Control-Allow-Headers retourneren om de browser door te laten gaan.
Volg omleidingen tijdens het controleren van headers
curl -iL -H "Origin: https://example.com" https://api.example.comHandig wanneer eindpunten doorverwijzen naar een andere host met verschillende CORS-regels.
Windows (PowerShell)
Inspecteer response headers met een Origin-header
$r = Invoke-WebRequest -Uri https://api.example.com/resource -Headers @{ Origin = "https://example.com" }; $r.HeadersToont Access-Control-* headers als deze aanwezig zijn.
Gebruiksscenario's
Debug een frontend "CORS geblokkeerd" browserfout
Wanneer fetch/XHR mislukt met een CORS-fout, controleer of de server de vereiste Access-Control-* headers retourneert voor jouw Origin en aanvraagtype.
- Bevestig dat Access-Control-Allow-Origin overeenkomt met je app-origin
- Als je cookies/auth gebruikt, controleer of Access-Control-Allow-Credentials true is (en origin geen wildcard is)
- Zorg ervoor dat Vary: Origin aanwezig is wanneer meerdere origins zijn toegestaan
Valideer preflight voor Authorization / aangepaste headers
De meeste geauthenticeerde API-aanroepen activeren preflight vanwege Authorization of niet-standaard content types. Deze tool helpt ervoor te zorgen dat OPTIONS-reacties de vereiste methode en headers toestaan.
- Verifieer dat Access-Control-Allow-Methods POST/PUT/PATCH/DELETE bevat indien nodig
- Verifieer dat Access-Control-Allow-Headers authorization, content-type en vereiste X-* headers bevat
- Ontdek ontbrekende allow-methods/allow-headers voor implementatie
Beveiligingsbeoordeling van CORS-beleid
CORS-misconfiguraties kunnen privé-API's per ongeluk blootstellen aan kwaadaardige sites (vooral met credentials). Gebruik de bevindingen om hoogrisicopatronen te identificeren.
- Detecteer wildcard origin gecombineerd met credentials
- Detecteer origin-patronen die willekeurige sites toestaan
- Markeer het toestaan van Origin: null wanneer niet bedoeld
Verbeter prestaties door preflight te cachen
Preflight-aanvragen voegen extra round-trips en latentie toe. Een correcte Max-Age kan herhaalde preflight-controles voor stabiele API's verminderen.
- Verifieer dat Access-Control-Max-Age aanwezig is waar van toepassing
- Verminder herhaalde OPTIONS-aanroepen voor frequente API-verkeer
❓ Frequently Asked Questions
❓Wat is CORS in eenvoudige bewoordingen?
CORS (Cross-Origin Resource Sharing) is een browserbeveiligingsmechanisme dat bepaalt of een webpagina van één origin (schema + host + poort) reacties van een andere origin kan lezen. Het is afhankelijk van specifieke Access-Control-* response headers.❓Wanneer stuurt een browser een preflight (OPTIONS) aanvraag?
❓Waarom is "Access-Control-Allow-Origin: *" gevaarlijk met credentials?
❓Waarom heb ik Vary: Origin nodig?
❓Kan CORS mijn API beschermen tegen niet-browserclients?
CORS wordt afgedwongen door browsers. Scripts die buiten een browser draaien (servers, curl, mobiele apps) kunnen je API aanroepen ongeacht CORS. Gebruik authenticatie, autorisatie en rate limiting voor echte toegangscontrole.❓Wat moet ik invullen bij "Request Headers" bij het testen van preflight?
❓Is het veilig om hier URL's te plakken?
Pro Tips
Geef de voorkeur aan een allowlist van vertrouwde origins in plaats van elke Origin te reflecteren. Behandel CORS als een beveiligingsgevoelige configuratie.
Als je cookies/auth gebruikt, stel dan Access-Control-Allow-Credentials: true in EN geef een expliciete origin terug (niet "*").
Voeg Vary: Origin toe wanneer je meerdere origins toestaat of dynamisch de toegestane origin selecteert.
Voeg een redelijke Access-Control-Max-Age toe om preflight-latentie te verminderen voor stabiele API's.
Test zowel het preflight- als het echte verzoekpad; sommige configuraties geven correcte headers voor GET terug maar falen bij OPTIONS.
Exporteer JSON-rapporten en bewaar ze naast API-gatewayconfiguratiewijzigingen om snel regressies te spotten.
Additional Resources
Other Tools
- CSS Opmaker
- HTML Opmaker
- Javascript Opmaker
- PHP Opmaker
- Kleurkiezer
- Sprite Extractor
- Base32 Binaire Encoder
- Base32 Decoder
- Base32 Encoder
- Base58 Binaire Encoder
- Base58 Decoder
- Base58 Encoder
- Base62 Binaire Encoder
- Base62 Decoder
- Base62 Encoder
- Base64 Binaire Encoder
- Base64 Decoder
- Base64 Encoder
- Hex Binaire Encoder
- Hex Decoder
- Hex Encoder
- Csharp Formatter
- Csv Formatter
- Dockerfile Formatter
- Elm Formatter
- ENV Formatter
- Go Formatter
- Graphql Formatter
- Hcl Formatter
- INI Formatter
- JSON Formatter
- Latex Formatter
- Markdown Formatter
- Objectivec Formatter
- Php Formatter
- Proto Formatter
- Python Formatter
- Ruby Formatter
- Rust Formatter
- Scala Formatter
- Shell Script Formatter
- SQL Formatter
- SVG Formatter
- Swift Formatter
- TOML Formatter
- Typescript Formatter
- XML Formatter
- YAML Formatter
- Yarn Formatter
- CSS Verkleiner
- Html Minifier
- Javascript Minifier
- JSON Verkleiner
- XML Verkleiner
- Cache Headers Analyzer
- Csp Analyzer
- Dns Records Lookup
- Http Headers Viewer
- 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 Naar Tekst
- Regex Tester
- Serp Rang Checker
- Whois Opzoeken