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.

Loading…

Over CORS Checker

Plak een API- of pagina-URL en verifieer of browsers cross-origin verzoeken zullen toestaan. Deze tool analyseert CORS-antwoordheaders, kan een realistische preflight (OPTIONS)-controle uitvoeren en markeert risicovolle of gebroken configuraties (zoals "*" met credentials, ontbrekende Vary: Origin, of zwakke allow-methods/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

1

Voer de doel-URL in

Plak het eindpunt dat je wilt testen (bijv., https://api.example.com/resource).

2

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.

3

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.

4

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.

5

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.

InstellingGedragStandaard
ControlemodusAutomatisch, Eenvoudig verzoek, of Alleen preflightAutomatisch
Preflight uitvoeren (OPTIONS)Indien ingeschakeld, voert een OPTIONS preflight-simulatie uitIngeschakeld
OorsprongOrigin-headerwaarde gebruikt voor analyse/preflighthttps://example.com
VerzoekmethodeAccess-Control-Request-Method waarde voor preflightGET
VerzoekheadersAccess-Control-Request-Headers (komma-gescheiden) voor preflightLeeg
Volg omleidingenVolgt de omleidingsketen naar de uiteindelijke URLIngeschakeld
Max. omleidingenOmleidingslimiet om lussen te voorkomen10 (bereik 0–20)
Time-outTime-outlimiet voor verzoek15000 ms
User-AgentIdentificeert de user agent van het verzoekEncode64Bot/1.0 (+https://encode64.com)
PrivénetwerkenBlokkeert toegang tot privénetwerkbereiken voor veiligheidUitgeschakeld (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.

HeaderDoel
Access-Control-Allow-OriginWelke oorsprong(en) zijn toegestaan
Access-Control-Allow-CredentialsOf cookies/inloggegevens zijn toegestaan (vereist niet-wildcard oorsprong)
Access-Control-Allow-MethodsMethoden toegestaan voor cross-origin-verzoeken (belangrijk voor preflight)
Access-Control-Allow-HeadersToegestane headers (belangrijk voor Authorization en aangepaste headers)
Access-Control-Expose-HeadersWelke headers leesbaar zijn door browser-JS
Access-Control-Max-AgeHoe lang preflight door de browser gecached kan worden
VaryCache-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.

ControleWaarom het belangrijk is
Wildcard + inloggegevensAccess-Control-Allow-Origin: * kan niet worden gebruikt met inloggegevens; browsers blokkeren dit of het gedrag is onveilig
Ontbrekende Vary: OriginAls antwoorden per Origin verschillen maar niet correct gecached worden, kunnen gedeelde caches antwoorden tussen sites mengen
Origin weerspiegelenOrigin klakkeloos herhalen kan onbedoeld niet-vertrouwde origins toestaan
Null Origin-waarschuwingenOrigin: null kan voorkomen in afgeschermde iframes of bestandscontexten; dit toestaan is vaak riskant
Ontbrekende Allow-Methods / Allow-HeadersPreflight kan mislukken als de server de methode/headers niet expliciet toestaat
Te ruime Allow-HeadersTe veel headers toestaan kan het aanvalsoppervlak vergroten
Ontbrekende Max-AgePreflight kan te vaak uitgevoerd worden, wat latentie toevoegt
CORS is een browserafdwingingsmechanisme. Servers kunnen nog steeds cross-origin bereikbaar zijn via niet-browserclients; behandel CORS als onderdeel van een bredere beveiligingshouding, niet als enige controle.

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/resource

Zoek 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/private

Preflight 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.com

Handig 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.Headers

Toont Access-Control-* headers als deze aanwezig zijn.

Als je frontend cookies of authenticatie gebruikt, vermijd dan permissieve CORS. Geef de voorkeur aan een expliciete allowlist van vertrouwde origins en voeg Vary: Origin toe wanneer reacties verschillen per origin.

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?

Een preflight wordt verzonden wanneer de aanvraag niet "eenvoudig" is, bijvoorbeeld bij het gebruik van methoden zoals POST met bepaalde content types of bij het verzenden van headers zoals Authorization of aangepaste X-* headers. De browser controleert rechten via OPTIONS voordat de echte aanvraag wordt verzonden.

Waarom is "Access-Control-Allow-Origin: *" gevaarlijk met credentials?

Browsers vereisen een expliciete origin wanneer credentials betrokken zijn. Het gebruik van een wildcard met credentials is ongeldig voor geauthenticeerde aanvragen en duidt op een riskante configuratie. Geef de voorkeur aan een expliciete allowlist van vertrouwde origins.

Waarom heb ik Vary: Origin nodig?

Als je server verschillende Access-Control-Allow-Origin waarden retourneert afhankelijk van de aanvraag-Origin, moeten caches variëren per Origin om te voorkomen dat een reactie bedoeld voor één site aan een andere wordt geserveerd. Vary: Origin helpt cache-menging en gerelateerde beveiligingsproblemen te voorkomen.

Kan CORS mijn API beschermen tegen niet-browserclients?

Nee. 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?

Lijst de headers op die je frontend zal versturen, gescheiden door komma's (bijv. authorization, content-type, x-request-id). Dit simuleert Access-Control-Request-Headers en controleert of de server ze toestaat.

Is het veilig om hier URL's te plakken?

De tool doet server-side verzoeken naar de opgegeven URL en blokkeert privé-netwerkdoelen. Vermijd geheimen in URL's (zoals tokens in query strings) en geef de voorkeur aan openbare eindpunten die je vertrouwt.

Pro Tips

Best Practice

Geef de voorkeur aan een allowlist van vertrouwde origins in plaats van elke Origin te reflecteren. Behandel CORS als een beveiligingsgevoelige configuratie.

Best Practice

Als je cookies/auth gebruikt, stel dan Access-Control-Allow-Credentials: true in EN geef een expliciete origin terug (niet "*").

Best Practice

Voeg Vary: Origin toe wanneer je meerdere origins toestaat of dynamisch de toegestane origin selecteert.

Best Practice

Voeg een redelijke Access-Control-Max-Age toe om preflight-latentie te verminderen voor stabiele API's.

Best Practice

Test zowel het preflight- als het echte verzoekpad; sommige configuraties geven correcte headers voor GET terug maar falen bij OPTIONS.

CI Tip

Exporteer JSON-rapporten en bewaar ze naast API-gatewayconfiguratiewijzigingen om snel regressies te spotten.

Additional Resources

Other Tools

CORS Checker — test Access-Control-* headers en preflight (OPTIONS) | Encode64