En VPN kan ikke slå av CORS, den endrer svaret
En ny utgangsadresse gjør ikke to opphav like. Ta opp svarhodene på begge veier og sammenlign dem før du gir CORS-håndhevingen skylden.
Begynn med å skille to ting som endret seg samtidig: nettverksveien og nettleserens håndheving. En VPN endrer utgangsadressen; den endrer ikke sidens opphav, som bygges av skjema, vert og port. Hvis forespørselen nå lykkes, har noe i svaret endret seg, eller forespørselen selv har endret seg. Å finne ut hvilket er hele undersøkelsen.
CORS er en headerprotokoll som nettleseren håndhever, så ingenting på nettverksveien kan slå den av.
Opphav er ikke en IP-adresse
Et opphav er et skjema, en vert og en port. Det er ikke adressen pakkene forlater fra, og det er ikke IP-en serveren ser. Derfor kan en VPN endre hver observerbar adresse og la opphavet være identisk. Nettleseren sammenligner svarets Access-Control-Allow-Origin med sidens opphav, og utgangsadressen kommer aldri inn i den sammenligningen.
Så en utvidelse eller en proxy som ser ut til å rette en CORS-feil, gjør noe annet: skriver om headere eller ruter forespørselen slik at den ikke lenger er kryss-opphav. Ingen av delene er en egenskap ved VPN-en.
Hva nettleseren faktisk sender
For en kryss-opphav-forespørsel som ikke er enkel, sender nettleseren først en forhåndskontroll OPTIONS, som bærer den tiltenkte metoden og hodene. Serveren må svare med tillatelsene den gir, og den egentlige forespørselen følger bare hvis det svaret oppfyller reglene. En VPN endrer veien som bærer begge utvekslingene og kan endre hva mellomliggende tjenester svarer. Den endrer ikke opphavsstrengen eller kravet om forhåndskontroll.
En kommandolinjeklient viser vanligvis ingenting av dette. Den sender kanskje ikke Origin-hodet, hopper ofte over forhåndskontrollen og kan bære andre legitimasjoner. En kropp som returneres til curl, beviser at serveren svarte curl.
Finn svaret som endret seg
Sammenlign det faktiske svaret gjennom hver vei, ikke bare statuskoden. Se på hodene som bærer CORS-tillatelser, innholdstypen, enhver omdirigering, og om en WAF- eller CDN-variant produserte en annen side. En regional avvisning, en autentiseringsomdirigering eller en feilside uten tillatelseshodet feiler alle i nettleseren mens de ser ut som en CORS-feil. Det er forskjeller i leveringsveien, og det er dem som skal dokumenteres.
Ta opp svarhodene fra begge veier og sammenlign dem linje for linje. Hvis den eneste forskjellen er den manglende Access-Control-Allow-Origin på én feilside, har du funnet årsaken.
Rett tjenesten, ikke håndhevingen
Når tjenesten er din, angi de tillatte opphavene og forespørselsfunksjonene eksplisitt, og les deretter feilene frontend og mellomledd produserer. Hvis du ikke gjør det, send tjenesteeieren en renset sammenligning. Ta aldri med informasjonskapsler, autorisasjonshoder eller sesjonseksporter i den rapporten, for det er legitimasjonene policyen finnes for å beskytte.
Unngå nettleserutvidelser som slår av CORS. De endrer sikkerhetsgrensen mens de skjuler svarforskjellen som måtte forklares, og de lar den samme feilen bli stående for alle andre brukere.
Ta opp begge svarene, opphavet som ble brukt og veien som ble tatt. Den registreringen gjør et VPN-rykte om til en tjenestefeil.