CORS Checker - Vind de controle die je cross-origin verzoek blokkeert | POLPROG Naar de inhoud

CORS Checker

Vind de controle die je cross-origin verzoek blokkeert

Zou een browser je code deze respons laten lezen? En zo niet, welke controle zei nee.

Webtool Web
Officiële productpagina Publisher: POLPROG
Officiële productpagina
6
Analysefasen
5
Tabbladen in het rapport
10
Origins per analyse
0
Verstuurde verzoeklichamen
01CORS Checker

Over

Dit is de diagnose van één verzoek, geen headerdump. Je beschrijft de aanroep die je code doet - het eindpunt, de origin waarop hij draait, de methode, de headers die hij zet, of hij credentials meestuurt - en de tool zegt of een browser je de respons zou laten lezen, en welke controle dat precies bepaalde.

Wat er tijdens een analyse echt gebeurt

  1. Voorbereiden van het verzoek precies zoals beschreven.
  2. Classificeren als eenvoudig of preflight-plichtig, volgens de regels van de Fetch-standaard die een browser toepast.
  3. De preflight testen met een echt OPTIONS-verzoek met Origin, Access-Control-Request-Method en waar nodig Access-Control-Request-Headers.
  4. Het echte verzoek sturen, want de preflight alleen toont nooit de CORS-headers van de echte respons.
  5. De lijst met toegestane origins peilen met één extra verzoek vanaf een origin die de server nooit heeft gezien.
  6. Het rapport bouwen: oordeel, verloop van het verzoek, headers, bevindingen en de technische uitwisseling.

De peiling van de toegestane lijst

Een server die elke origin antwoordt met diezelfde origin ziet er identiek uit als een correct ingerichte toegestane lijst, zolang je alleen je eigen origin test. Eén verzoek vanaf een origin die de server nooit heeft gezien scheidt die twee, en dat telt, want een server die de origin terugkaatst in combinatie met credentials is precies de configuratie die een respons leesbaar maakt voor elke site die de gebruiker bezoekt.

Credentials veranderen de regels

HeaderMet credentials
Access-Control-Allow-OriginGeen jokertekenMoet de origin noemen. Een sterretje wordt ronduit geweigerd, ook naast Access-Control-Allow-Credentials: true.
Allow-Methods, Allow-Headers, Expose-HeadersLetterlijkEen sterretje is geen jokerteken meer en wordt gelezen als letterlijke header- of methodenaam.
Access-Control-Allow-CredentialsVerplichtDe enige geaccepteerde waarde is precies de kleine-letterstring true.

Bevindingen, geen bijvoeglijke naamwoorden

Elke bevinding draagt een ernst, een categorie, de fase waaruit ze komt, het bewijs waarop ze steunt, de headers die ze betreft en een aanbeveling. De geslaagde controles staan er ook, dus een schoon resultaat is zichtbaar in plaats van alleen leeg. Twee regels die de aanbevelingen volgen, omdat het voor de hand liggende advies vaak het verkeerde is: niets hier zegt dat je een methode, header of origin moet openzetten alleen om een rood vak te laten verdwijnen - een geblokkeerde DELETE kan een correct afgesloten eindpunt zijn - en niets hier stelt ooit voor een willekeurige Origin terug te kaatsen. Het antwoord is een toegestane lijst, elke keer.

Wat het niet beweert

CORS bepaalt welke origins een respons binnen een browser mogen lezen. Het is geen authenticatie, het geeft geen rechten, en het stopt geen cross-site request forgery, want een CSRF-aanval hoeft de respons nooit te lezen. Elke client die geen browser is negeert het volledig. Deze tool zegt dat uitdrukkelijk, in plaats van een groen oordeel te laten suggereren dat je eindpunt beschermd is.

02Toepassing

Wat het oplost

Het probleem
  • Het werkt in curl en Postman, en faalt in de browser
  • De console zegt geblokkeerd door het CORS-beleid, en veel meer niet
  • De preflight faalt, het eindpunt ziet het verzoek nooit en de logs blijven leeg
Het resultaat
  • De exacte controle die de browser tegenhoudt, benoemd
  • Een echte preflight en een echt verzoek, allebei echt verstuurd
  • Een oplossing die niet betekent dat je het eindpunt openzet
Voor wie
  • Frontendontwikkelaars van wie de fetch-aanroep wordt geblokkeerd
  • API-teams die CORS over meerdere omgevingen inrichten
  • Iedereen die een preflight debugt die hij niet heeft geschreven
03Belangrijkste functies

Belangrijkste functies

De belangrijkste mogelijkheden praktisch uitgelegd.

Een oordeel over één specifiek verzoek

Toegestaan of geblokkeerd, voor precies de methode, headers, origin en credentialsmodus die je beschrijft, met de controle die het bepaalde erbij genoemd. Geen lijst headers die je zelf moet duiden.

Een echte preflight en een echt verzoek

Zes fasen, elk gemeld zodra ze vaststaat. De OPTIONS-preflight gaat eruit zoals een browser hem zou sturen, en daarna volgt het echte verzoek, want de preflight alleen toont nooit de CORS-headers van de echte respons.

Eenvoudig of preflight-plichtig, netjes beslist

Een verzoek is alleen eenvoudig als de methode GET, HEAD of POST is en elke header op de CORS-safelist staat, waarbij Content-Type beperkt is tot drie waarden. De tool past de regel toe in plaats van te gokken, en daar komt het onverwachte OPTIONS-verzoek meestal vandaan.

De peiling van de toegestane origins

Eén extra verzoek vanaf een origin die de server nooit heeft gezien scheidt een echte toegestane lijst van een server die alles terugkaatst wat hij krijgt. Die twee zien er identiek uit als je alleen je eigen origin test.

Verzoeken met credentials beoordeeld op hun eigen regels

Een jokerteken-origin wordt ongeldig, en sterretjes in Allow-Methods, Allow-Headers en Expose-Headers zijn geen jokertekens meer maar letterlijke namen. De analyse past de strengere regelset toe, niet de bekende.

Omleidingen bij elke sprong opnieuw gecontroleerd

Een browser begint zijn CORS-controle bij elke omleiding opnieuw, dus elke sprong wordt opnieuw beoordeeld voordat hij wordt gevolgd. Een keten die op een toegeeflijke plek eindigt, kan halverwege alsnog geblokkeerd zijn.

Meerdere origins in één analyse

Tot tien extra origins getest tegen hetzelfde eindpunt en getoond als tabel, de snelste manier om te bevestigen dat lokaal, staging en productie allemaal op de toegestane lijst staan en niets meer.

Bevindingen met bewijs en aanbeveling

Elk draagt een ernst, een categorie, de fase waaruit het komt, het bewijs erachter en de headers die het betreft, naast de geslaagde controles. Geen enkele aanbeveling zegt dat je een methode, header of origin moet openzetten alleen om een waarschuwing te laten verdwijnen.

04Download

Toegang tot het product

Een duidelijk pad van de officiële bron naar je eerste geslaagde workflow.

Kies het juiste platform

Gebruik een van de officiële links voor je apparaat of browser.

Installeer of open

Volg de instructies van de store of open de webapplicatie. Geen installatieprogramma's van derden.

Configureer en begin

Bekijk de opties, kies je voorkeuren en begin met de belangrijkste workflow.

Officiële toegangsopties
05Technologie

Technologie achter het product

Een transparant overzicht van de kerntechnologieën waarmee dit product wordt gebouwd en onderhouden.

PHP
JavaScript
06Beveiliging

Privacy & beveiliging

Je gegevens blijven op je apparaat. Altijd.

Geen account, geen registratie
Geen cookie van jou wordt doorgestuurd
Er wordt nooit een verzoeklichaam verstuurd
Niets wordt bewaard zodra het rapport bij jou is