Una VPN no pot desactivar CORS: canvia la resposta
Una adreça de sortida nova no fa iguals dos orígens. Captura les capçaleres de resposta en tots dos camins i compara-les abans de culpar l'aplicació de CORS.
Comença separant dues coses que van canviar alhora: el camí de xarxa i l'aplicació del navegador. Una VPN canvia l'adreça de sortida; no canvia l'origen de la pàgina, que es construeix amb esquema, amfitrió i port. Si la petició ara té èxit, alguna cosa de la resposta ha canviat, o la petició mateixa. Esbrinar quina de les dues és tota la investigació.
CORS és un protocol de capçaleres que aplica el navegador, així que res del camí de xarxa no el pot desactivar.
L'origen no és una adreça IP
Un origen és un esquema, un amfitrió i un port. No és l'adreça de la qual surten els paquets ni és la IP que veu el servidor. Per això una VPN pot canviar cada adreça observable i deixar l'origen idèntic. El navegador compara l'Access-Control-Allow-Origin de la resposta amb l'origen de la pàgina, i l'adreça de sortida no entra mai en aquesta comparació.
Per tant, una extensió o un proxy que sembla arreglar un error de CORS fa una altra cosa: reescriu capçaleres o encamina la petició de manera que ja no sigui d'un altre origen. Cap de les dues és una propietat de la VPN.
Què envia realment el navegador
Per a una petició d'un altre origen que no és simple, el navegador envia primer una precomprovació OPTIONS amb el mètode i les capçaleres previstos. El servidor ha de respondre amb els permisos que permet, i la petició real només continua si aquesta resposta compleix les regles. Una VPN canvia el camí que transporta tots dos intercanvis i pot canviar què responen els serveis intermedis. No canvia la cadena d'origen ni el requisit de precomprovació.
Un client de línia d'ordres normalment no mostra res d'això. Pot no enviar la capçalera Origin, sovint s'estalvia la precomprovació i pot portar credencials diferents. Un cos retornat a curl demostra que el servidor va respondre a curl.
Troba la resposta que va canviar
Compara la resposta real per cada camí, no només el codi d'estat. Mira les capçaleres que porten permisos de CORS, el tipus de contingut, qualsevol redirecció i si una variant de WAF o CDN va produir una pàgina diferent. Un refús regional, una redirecció d'autenticació o una pàgina d'error sense la capçalera de permís fallen al navegador tot i semblar un error de CORS. Són diferències del camí de lliurament, i són el que cal documentar.
Captura les capçaleres de resposta dels dos camins i compara-les línia a línia. Si l'única diferència és l'absència d'Access-Control-Allow-Origin en una pàgina d'error, has trobat la causa.
Arregla el servei, no l'aplicació
Quan el servei és teu, declara explícitament els orígens permesos i les funcions de la petició, i després llegeix els errors que produeixen el seu frontend i els intermediaris. Si no ho fas, envia al propietari del servei una comparació sanejada. No incloguis mai galetes, capçaleres d'autorització ni exportacions de sessió en aquest informe, perquè són les credencials que la política existeix per protegir.
Evita les extensions del navegador que desactiven CORS. Canvien la frontera de seguretat mentre amaguen la diferència de resposta que calia explicar, i deixen la mateixa fallada per a tota la resta d'usuaris.
Registra les dues respostes, l'origen utilitzat i el camí seguit. Aquest registre converteix un rumor sobre VPN en un error del servei.