Security Tools

CORS Checker — Cross-Origin Resource Sharing Test

Send an OPTIONS preflight and inspect Access-Control-Allow-Origin, methods, headers, and credentials

How to Use This Tool

  1. Enter the API or resource URL to test — typically https://api.example.com/path.
  2. Optionally specify a custom Origin header; otherwise a test cross-origin value is used.
  3. An OPTIONS request is sent with Origin and Access-Control-Request-Method: GET.
  4. Response status and all Access-Control-Allow-* headers are captured from the server reply.
  5. corsEnabled is true when Access-Control-Allow-Origin is present in the response.
  6. Compare Allow-Origin against your allowed frontend origins — wildcard with credentials is invalid per spec.

About This Tool

Cross-Origin Resource Sharing controls whether browsers permit JavaScript on one origin to read responses from another. Misconfigured CORS breaks SPAs calling APIs; overly permissive CORS exposes authenticated data to arbitrary websites. VSPIC sends an OPTIONS preflight request to your URL with a configurable Origin header and reports the Access-Control-* response headers the server returns.

By default we test with a synthetic cross-origin value to simulate an unrelated site requesting access. You can supply a custom Origin to verify that your API allows only trusted frontends. Results include HTTP status, Access-Control-Allow-Origin, Allow-Methods, Allow-Headers, Allow-Credentials, and whether CORS appears enabled at all.

Common use cases

  • Check if a VPN or proxy is detected on your connection
  • Validate SSL certificates before launch
  • Scan for email addresses in known breaches

Understanding CORS in browser security

Browsers enforce the same-origin policy by default. Without CORS headers, fetch and XMLHttpRequest from https://app.example.com cannot read responses from https://api.example.com even when the user is authenticated. CORS is a server opt-in mechanism, not a substitute for authentication.

Server-side curl requests ignore CORS — only browser contexts enforce it. That is why APIs appear to work in backend tests but fail in frontend consoles with CORS errors.

Preflight OPTIONS requests

Non-simple methods and custom headers trigger a preflight OPTIONS request before the actual call. Our checker simulates this preflight with Origin and Access-Control-Request-Method headers. If OPTIONS fails or omits required Allow headers, browsers block the subsequent GET or POST.

Some servers respond correctly to GET but not OPTIONS — a common misconfiguration when only GET routes are wired at the gateway.

Access-Control-Allow-Origin values

A specific origin like https://app.example.com is safest for credentialed requests. Wildcard * allows any origin but cannot be combined with Access-Control-Allow-Credentials: true. Reflecting the request Origin without validation effectively allows any site — treat reflection as equivalent to wildcard unless you validate against an allowlist server-side.

Our results show the exact Allow-Origin string returned for your test Origin so you can confirm intentional restriction.

Credentials and cookies

When Allow-Credentials is true, browsers include cookies on cross-origin requests only if Allow-Origin is a specific match, not *. Frontend code must set credentials: 'include' in fetch options.

Misconfigured credentialed CORS is a frequent source of session leakage — verify Allow-Origin never reflects arbitrary attacker origins on authenticated endpoints.

Allow-Methods and Allow-Headers

Allow-Methods lists permitted HTTP verbs for cross-origin calls. Allow-Headers lists custom request headers clients may send. Missing entries cause preflight failure even when Allow-Origin is correct.

Review both fields when debugging PATCH or DELETE failures from browser clients.

Testing with custom Origin

Supply your production frontend origin to confirm it is explicitly allowed. Test a deliberately untrusted origin to confirm it is rejected — absence of Allow-Origin or a mismatch means the browser will block read access.

Staging and production APIs may differ — run separate checks per environment.

CORS vs server-side authorization

CORS protects browser users from malicious sites reading API responses. It does not stop direct API abuse via curl or other non-browser clients. Always authenticate and authorize on the server regardless of CORS settings.

Public read-only APIs may legitimately use permissive CORS. Private data APIs should use strict origin allowlists.

Common misconfiguration patterns

Duplicate conflicting CORS headers from API gateway and application layer. OPTIONS not routed to the application on serverless platforms. Allow-Origin set only on error responses. CDN caching OPTIONS responses with wrong Origin for all clients.

Fix by centralizing CORS middleware, ensuring OPTIONS reaches the same handler as other methods, and disabling inappropriate caching of preflight responses.

When to use this CORS checker

Debugging browser console CORS errors after deploying a new frontend domain. Validating third-party API integrations before production cutover. Security review of public APIs that return sensitive JSON.

Document Allow-Origin decisions in runbooks alongside API authentication requirements.

Limitations of external CORS testing

We send one preflight from our server infrastructure. Some APIs geo-block or require API keys on all requests — those may return errors unrelated to CORS. IP allowlists on your API may block our probe.

Complex CORS with dynamic origin validation may require testing from an actual browser session on your frontend origin.

Frequently Asked Questions

Yes. VSPIC offers this CORS checker at no cost with no account required. Results load in real time.

We do not permanently store your queries on our servers. Some tools run entirely in your browser; others fetch public data for the request only.

Yes. Open the page in any modern phone or tablet browser. Results work on Wi‑Fi and mobile data.

Preflight OPTIONS is what browsers send before many cross-origin requests. Failures there block the real request before it starts.

Only publicly reachable URLs work. localhost is not accessible from our server — use a tunnel or staging URL.

No Access-Control-Allow-Origin header was returned. Browser cross-origin reads will be blocked for that origin.

Wildcard is acceptable for fully public read-only APIs with no credentials. Never use wildcard with Allow-Credentials true.

No. CORS controls response readability in browsers. CSRF requires separate token or SameSite cookie defenses.

Yes. Pass a custom Origin parameter to verify your API returns that exact value in Allow-Origin.

Next step for your check

Continue with ssl/tls grade checker on VSPIC.

SSL/TLS Grade Checker

Trusted by Users Who Value Privacy

Always Free

No premium plan ever

100% Private

Files processed in browser

Instant Results

Convert in seconds

Works Everywhere

Any device, any OS