Express atrás de proxies
Ao executar um aplicativo do Express atrás de um proxy,
configure (usando app.set()) a variável do
aplicativo trust proxy para um dos valores
listados na seguinte tabela.
Apesar de a execução do aplicativo não falhar se a variável do
aplicativo trust proxy não estiver configurada,
ele irá registrar incorretamente o endereço de IP do proxy como o
endereço de IP do cliente a não ser que o trust
proxy esteja configurado.
| Tipo | Valor |
|---|---|
| Booleano |
Se Se |
| Endereços IP |
Um endereço de IP, sub-rede, ou uma matriz de endereços de IP e sub-redes confiáveis. A lista a seguir mostra os nomes de sub-rede pré-configurados:
É possível configurar endereços de IP de qualquer uma das formas a seguir: Quando especificados, os endereços de IP ou sub-redes são excluídos do processo de determinação de endereço, e o endereço de IP não confiável mais próximos do servidor de aplicativos é determinado como o endereço de IP do cliente. |
| Número |
Confia no |
| Função |
Implementação de confiança customizada. Use apenas se souber o que está fazendo. |
Configurando um valor não-false para o
trust
proxy resulta em três mudanças importantes:
-
O valor de req.hostname é derivado do valor configurado no cabeçalho
X-Forwarded-Host, que pode ser configurado pelo cliente ou pelo proxy. -
X-Forwarded-Protopode ser configurado pelo proxy reverso para dizer ao aplicativo se ele éhttpsouhttpou até um nome inválido. Este valor é refletido pelo req.protocol. -
Os valores req.ip e req.ips são populados com a lista de endereços do
X-Forwarded-For.
A configuração do trust proxy é
implementada usando o pacote
proxy-addr. Para
obter mais informações, consulte a documentação.