Ein VPN kan ikkje slå av CORS, han endrar svaret
Ei ny utgangsadresse gjer ikkje to opphav like. Ta opp svarhovuda på begge vegane og samanlikn dei før du gir CORS-handhevinga skulda.
Byrja med å skilje to ting som endra seg samstundes: nettverksvegen og handhevinga til nettlesaren. Ein VPN endrar utgangsadressa; han endrar ikkje opphavet til sida, som er bygd av skjema, vert og port. Viss førespurnaden no lukkast, har noko i svaret endra seg, eller førespurnaden sjølv har endra seg. Å finne ut kva av dei er heile undersøkinga.
CORS er ein hovudprotokoll som nettlesaren handhevar, så ingenting på nettverksvegen kan slå han av.
Opphav er ikkje ei IP-adresse
Eit opphav er eit skjema, ein vert og ein port. Det er ikkje adressa pakkane forlèt, og det er ikkje IP-en serveren ser. Difor kan ein VPN endre kvar observerbar adresse og la opphavet vere identisk. Nettlesaren samanliknar Access-Control-Allow-Origin i svaret med opphavet til sida, og utgangsadressa kjem aldri inn i den samanlikninga.
Så ei utviding eller ein proxy som ser ut til å rette ein CORS-feil, gjer noko anna: skriv om hovud eller ruter førespurnaden slik at han ikkje lenger er kryss-opphav. Ingen av delane er ein eigenskap ved VPN-en.
Kva nettlesaren faktisk sender
For ein kryss-opphav-førespurnad som ikkje er enkel, sender nettlesaren først ein førehandskontroll OPTIONS, som ber den tiltenkte metoden og hovuda. Serveren må svare med løyva han gir, og den eigentlege førespurnaden følgjer berre viss det svaret oppfyller reglane. Ein VPN endrar vegen som ber båe utvekslingane og kan endre kva mellomliggjande tenester svarar. Han endrar ikkje opphavsstrengen eller kravet om førehandskontroll.
Ein kommandolinjeklient viser vanlegvis ingenting av dette. Han sender kanskje ikkje Origin-hovudet, hoppar ofte over førehandskontrollen og kan bere andre legitimasjonar. Ein kropp som vert returnert til curl, beviser at serveren svara curl.
Finn svaret som endra seg
Samanlikn det faktiske svaret gjennom kvar veg, ikkje berre statuskoden. Sjå på hovuda som ber CORS-løyve, innhaldstypen, kvar omdirigering, og om ein WAF- eller CDN-variant produserte ei anna side. Ei regional avvising, ei autentiseringsomdirigering eller ei feilside utan løyvehovudet feilar alle i nettlesaren medan dei ser ut som ein CORS-feil. Det er skilnader i leveringsvegen, og det er dei som skal dokumenterast.
Ta opp svarhovuda frå begge vegane og samanlikn dei line for line. Viss den einaste skilnaden er den manglande Access-Control-Allow-Origin på éi feilside, har du funne årsaka.
Rett tenesta, ikkje handhevinga
Når tenesta er di, angi dei tillatne opphava og førespurnadsfunksjonane eksplisitt, og les deretter feila frontend og mellomledd produserer. Viss du ikkje gjer det, send tenesteeigaren ein reinsa samanlikning. Ta aldri med informasjonskapslar, autorisasjonshovud eller sesjonseksportar i den rapporten, for det er legitimasjonane policyen finst for å verne.
Unngå nettlesarutvidingar som slår av CORS. Dei endrar tryggingsgrensa medan dei skjuler svarsskilnaden som måtte forklarast, og dei lèt den same feilen stå for alle andre brukarar.
Ta opp båe svara, opphavet som vart brukt og vegen som vart teken. Den registreringa gjer eit VPN-rykte om til ein tenestefeil.