# Proxy reverso

Em redes de computadores, um proxy reverso ou servidor substituto é um servidor proxy que parece a qualquer cliente ser um servidor web comum, mas na realidade age apenas como um intermediário que encaminha as solicitações do cliente para um ou mais servidores web comuns. Os proxies reversos ajudam a aumentar a escalabilidade, o desempenho, a resiliência e a segurança, mas também apresentam vários riscos.
As empresas que executam servidores web geralmente configuram proxies reversos para facilitar a comunicação entre o navegador de um usuário da Internet e os servidores web. Uma vantagem importante de fazer isso é que os servidores web podem ser ocultados atrás de um firewall em uma rede interna da empresa, e apenas o proxy reverso precisa ser exposto diretamente à Internet. Os servidores proxy reversos são implementados em servidores web populares de código aberto. Servidores proxy reversos dedicados são usados por alguns dos maiores sites da Internet.
Um proxy reverso é capaz de rastrear todas as solicitações dos endereços de IP que são retransmitidas através dele, bem como ler e/ou modificar qualquer tráfego que não estiver criptografado. No entanto, isso significa implicitamente que um agente de ameaça que comprometa o servidor também poderia.
Os proxies reversos diferem dos proxies de encaminhamento, que são usados quando o cliente está restrito a uma rede interna privada e solicita que um proxy de encaminhamento recupere recursos da Internet pública.

## Usos

Grandes sites e redes de distribuição de conteúdo usam proxies reversos, juntamente com outras técnicas, para equilibrar a carga entre servidores internos. Os proxies reversos podem manter um cache de conteúdo estático, o que reduz ainda mais a carga nesses servidores internos e na rede interna. Também é comum que os proxies reversos adicionem recursos como compactação ou criptografia TLS ao canal de comunicação entre o cliente e o proxy reverso.
Os proxies reversos podem inspecionar cabeçalhos HTTP, o que, por exemplo, permite que eles apresentem um único endereço IP para a Internet enquanto retransmitem solicitações para diferentes servidores internos com base no URL da solicitação HTTP.
Os proxies reversos podem ocultar a existência e as características dos servidores de origem. Isso pode tornar mais difícil determinar a localização real do servidor/site de origem e, por exemplo, mais desafiador iniciar ações legais, como remoções ou bloqueio de acesso ao site, pois o endereço IP do site pode não ser imediatamente aparente. Além disso, o proxy reverso pode estar localizado em uma jurisdição diferente com diferentes requisitos legais, complicando ainda mais o processo de remoção.
Os recursos de firewall de aplicativo podem proteger contra ataques comuns baseados na web, como um ataque de negação de serviço (DoS) ou ataques de negação de serviço distribuídos (DDoS). Sem um proxy reverso, remover malware ou iniciar remoções (enquanto lida simultaneamente com o ataque) no próprio site, por exemplo, pode ser difícil.
No caso de sites seguros, um servidor web pode não executar a criptografia TLS sozinho, mas, em vez disso, descarregar a tarefa para um proxy reverso que pode ser equipado com hardware de aceleração TLS.
Um proxy reverso pode distribuir a carga de solicitações de entrada para vários servidores, com cada servidor suportando sua própria área de aplicativo. No caso de servidores web de proxy reverso, o proxy reverso pode ter que reescrever o URL em cada solicitação de entrada para corresponder ao local interno relevante do recurso solicitado.
Um proxy reverso pode reduzir a carga em seus servidores de origem armazenando em cache conteúdo estático e conteúdo dinâmico, isso é conhecido como aceleração da web. Caches de proxy desse tipo geralmente podem satisfazer um número considerável de solicitações de sites, reduzindo muito a carga no(s) servidor(es) de origem.
Um proxy reverso pode otimizar o conteúdo compactando-o para acelerar os tempos de carregamento.
Em uma técnica chamada "spoon-feeding", uma página gerada dinamicamente pode ser produzida de uma só vez e servida ao proxy reverso, que pode então retorná-la ao cliente um pouco de cada vez. O programa que gera a página não precisa permanecer aberto, liberando recursos do servidor durante o tempo possivelmente estendido que o cliente requer para concluir a transferência.
Os proxies reversos podem operar onde quer que vários servidores da web devam ser acessíveis por meio de um único endereço IP público. Os servidores da web "escutam" em portas diferentes na mesma máquina, com o mesmo endereço IP local ou, possivelmente, em máquinas diferentes com endereços IP locais diferentes. O proxy reverso analisa cada solicitação recebida e a entrega ao servidor certo dentro da rede de área local.
Proxies reversos podem executar testes A/B e testes multivariados sem exigir código de aplicativo para lidar com a lógica de qual versão é servida a um cliente.
Um proxy reverso pode adicionar autenticação de acesso a um servidor web que não tem nenhuma autenticação.

## Riscos

Quando o tráfego de trânsito é criptografado e o proxy reverso precisa filtrar/armazenar em cache/compactar ou modificar, ou melhorar o tráfego, o proxy primeiro deve descriptografar e criptografar novamente as comunicações. Isso requer que o proxy possua o certificado TLS e sua chave privada correspondente, estendendo o número de sistemas que podem ter acesso a dados que não estejam criptografados e tornando-o um alvo mais valioso para invasores.
A grande maioria das violações de dados externos acontece quando hackers conseguem abusar de um proxy reverso existente que foi intencionalmente implantado por uma organização ou quando hackers conseguem converter um servidor existente voltado para a Internet em um servidor proxy reverso. Sistemas comprometidos ou convertidos permitem que invasores externos especifiquem para onde desejam que seus ataques sejam enviados por proxy, permitindo seu acesso a redes e sistemas internos.
Os aplicativos que foram desenvolvidos para uso interno de uma empresa normalmente não são reforçados para padrões públicos e não são necessariamente projetados para suportar todas as tentativas de hacking. Quando uma organização permite acesso externo a esses aplicativos internos por meio de um proxy reverso, eles podem aumentar involuntariamente sua própria superfície de ataque e convidar hackers.
Se um proxy reverso não estiver configurado para filtrar ataques ou não receber atualizações diárias para manter seu banco de dados de assinaturas de ataque atualizado, uma vulnerabilidade de dia zero pode passar sem filtro, permitindo que os invasores obtenham controle do(s) sistema(s) que estão por trás do servidor proxy reverso.
Usar o proxy reverso de um terceiro (por exemplo, Cloudflare, Imperva) coloca toda a tríade de confidencialidade, integridade e disponibilidade nas mãos do terceiro que opera o proxy.
Se um proxy reverso estiver enfrentando muitos domínios diferentes, sua interrupção (por exemplo, por uma configuração incorreta ou ataque DDoS) pode derrubar todos os domínios enfrentados.
Os proxies reversos também podem se tornar um ponto de falha único se não houver outra maneira de acessar o servidor interno (back-end).