Um visitante clica num botão. Seu servidor PHP chama uma API externa. A API vê a conexão de saída do servidor, ou a saída do proxy configurado para essa conexão. O navegador do visitante mantém uma conexão separada com o seu site.

Copiar o endereço do visitante para um cabeçalho não consegue mover a conexão PHP para a rede do visitante. Cabeçalhos são dados enviados por uma conexão já estabelecida. Um destino pode usar um cabeçalho de encaminhamento confiável na sua própria lógica de aplicação, mas isso não transforma o valor do cabeçalho no endereço de origem da conexão.

O proxy precisa aceitar a conexão

Para enviar o PHP cURL por outra máquina, essa máquina precisa oferecer um serviço de proxy acessível e com permissão para transportar a requisição. O processo PHP precisa conseguir se conectar a ele. Uma sessão normal de navegador do visitante não dá ao seu servidor esse tipo de endpoint de proxy de uso geral.

A opção de proxy do libcurl seleciona o serviço ao qual o cURL se conecta. Ela não pode pedir que um navegador qualquer origine a requisição em seu nome.

Uma requisição do navegador é outro desenho

Para algumas APIs, o navegador pode chamar o destino diretamente. Isso coloca a requisição no caminho de rede do usuário, sujeita à configuração de proxy dele. Também exige uma API projetada para clientes de navegador. O acesso entre origens segue o CORS, e as credenciais enviadas ao código do navegador ficam disponíveis para esse cliente.

Decida onde a requisição deve estar antes de escolher uma opção de proxy. Mantenha as credenciais do servidor no servidor; use integração documentada com o navegador quando o serviço oferecer suporte. Nenhum dos desenhos oferece um atalho confiável para fazer uma requisição do servidor herdar a identidade de rede do visitante.

Artigos relacionados