Comece separando duas coisas que mudaram ao mesmo tempo: o caminho de rede e a aplicação pelo navegador. Uma VPN muda o endereço de saída; não muda a origem da página, que é composta de esquema, host e porta. Se o pedido agora tem sucesso, algo na resposta mudou, ou o próprio pedido. Descobrir qual dos dois é toda a investigação.

CORS é um protocolo de cabeçalhos aplicado pelo navegador, portanto nada no caminho de rede pode desativá-lo.

A origem não é um endereço IP

Uma origem é um esquema, um host e uma porta. Não é o endereço de onde saem os pacotes nem é o IP que o servidor vê. Por isso uma VPN pode mudar cada endereço observável e deixar a origem idêntica. O navegador compara o Access-Control-Allow-Origin da resposta com a origem da página, e o endereço de saída nunca entra nessa comparação.

Assim, uma extensão ou um proxy que parece corrigir um erro de CORS faz outra coisa: reescreve cabeçalhos ou encaminha o pedido para que deixe de ser de outra origem. Nenhuma das duas é uma propriedade da VPN.

O que o navegador realmente envia

Para um pedido de outra origem que não é simples, o navegador envia primeiro uma pré-verificação OPTIONS, transportando o método e os cabeçalhos pretendidos. O servidor deve responder com as permissões que concede, e o pedido real só segue se essa resposta cumprir as regras. Uma VPN muda o caminho que transporta as duas trocas e pode mudar o que os serviços intermédios respondem. Não muda a cadeia de origem nem o requisito de pré-verificação.

Um cliente de linha de comando normalmente não mostra nada disso. Pode não enviar o cabeçalho Origin, muitas vezes salta a pré-verificação e pode levar credenciais diferentes. Um corpo devolvido ao curl prova que o servidor respondeu ao curl.

Encontre a resposta que mudou

Compare a resposta real em cada caminho, não apenas o código de estado. Veja os cabeçalhos que levam permissões de CORS, o tipo de conteúdo, qualquer redirecionamento e se uma variante de WAF ou CDN produziu uma página diferente. Uma recusa regional, um redirecionamento de autenticação ou uma página de erro sem o cabeçalho de permissão falham no navegador embora pareçam um erro de CORS. São diferenças do caminho de entrega, e são o que deve ser documentado.

Capture os cabeçalhos de resposta dos dois caminhos e compare-os linha a linha. Se a única diferença for a falta de Access-Control-Allow-Origin numa página de erro, encontrou a causa.

Corrija o serviço, não a aplicação

Quando o serviço é seu, declare explicitamente as origens permitidas e as funcionalidades do pedido, e depois leia os erros que o frontend e os intermediários produzem. Se não o fizer, envie ao proprietário do serviço uma comparação saneada. Nunca inclua cookies, cabeçalhos de autorização ou exportações de sessão nesse relatório, porque são as credenciais que a política existe para proteger.

Evite as extensões do navegador que desativam CORS. Mudam a fronteira de segurança enquanto escondem a diferença de resposta que precisava de explicação, e deixam a mesma falha para todos os outros utilizadores.

Registe as duas respostas, a origem usada e o caminho seguido. Esse registo transforma um rumor sobre VPN num erro do serviço.

Artigos relacionados