En VPN kan inte stänga av CORS, den ändrar svaret
En ny utslagsadress gör inte två ursprung lika. Fånga svarshuvudena på båda vägarna och jämför dem innan du skyller på CORS-tillämpningen.
Börja med att skilja på två saker som ändrades samtidigt: nätverksvägen och webbläsarens tillämpning. En VPN ändrar utslagsadressen; den ändrar inte sidans ursprung, som byggs av schema, värd och port. Om begäran nu lyckas har något i svaret ändrats, eller begäran själv har ändrats. Att ta reda på vilket är hela undersökningen.
CORS är ett huvudprotokoll som webbläsaren tillämpar, så ingenting på nätverksvägen kan stänga av det.
Ursprung är inte en IP-adress
Ett ursprung är ett schema, en värd och en port. Det är inte adressen paketen lämnar från, och det är inte IP-adressen servern ser. Därför kan en VPN ändra varje observerbar adress och låta ursprunget vara identiskt. Webbläsaren jämför svarets Access-Control-Allow-Origin med sidans ursprung, och utslagsadressen kommer aldrig in i den jämförelsen.
Så ett tillägg eller en proxy som verkar rätta ett CORS-fel gör något annat: skriver om huvuden eller dirigerar begäran så att den inte längre är korsursprunglig. Ingen av delarna är en egenskap hos VPN:en.
Vad webbläsaren faktiskt skickar
För en korsursprunglig begäran som inte är enkel skickar webbläsaren först en förhandskontroll OPTIONS, som bär den avsedda metoden och huvudena. Servern måste svara med de behörigheter den ger, och den egentliga begäran följer bara om det svaret uppfyller reglerna. En VPN ändrar vägen som bär båda utbytena och kan ändra vad mellanliggande tjänster svarar. Den ändrar inte ursprungssträngen eller kravet på förhandskontroll.
En kommandoradsklient visar vanligtvis inget av detta. Den kanske inte skickar Origin-huvudet, hoppar ofta över förhandskontrollen och kan bära andra inloggningsuppgifter. En kropp som returneras till curl bevisar att servern svarade curl.
Hitta svaret som ändrades
Jämför det faktiska svaret genom varje väg, inte bara statuskoden. Titta på huvudena som bär CORS-behörigheter, innehållstypen, varje omdirigering, och om en WAF- eller CDN-variant producerade en annan sida. En regional avvisning, en autentiseringsomdirigering eller en felsida utan behörighetshuvudet misslyckas alla i webbläsaren medan de ser ut som ett CORS-fel. Det är skillnader i leveransvägen, och det är dem som ska dokumenteras.
Fånga svarshuvudena från båda vägarna och jämför dem rad för rad. Om den enda skillnaden är det saknade Access-Control-Allow-Origin på en felsida, har du hittat orsaken.
Rätta tjänsten, inte tillämpningen
När tjänsten är din, ange de tillåtna ursprungen och begärans funktioner uttryckligen, och läs sedan de fel som frontend och mellanhänder producerar. Om du inte gör det, skicka tjänstens ägare en rensad jämförelse. Ta aldrig med kakor, auktoriseringshuvuden eller sessionsexporter i den rapporten, för det är de inloggningsuppgifter som policyn finns för att skydda.
Undvik webbläsartillägg som stänger av CORS. De ändrar säkerhetsgränsen medan de döljer svarsskillnaden som behövde förklaras, och de lämnar samma fel kvar för alla andra användare.
Anteckna båda svaren, ursprunget som användes och vägen som togs. Den anteckningen förvandlar ett VPN-rykte till ett tjänstefel.