Exprimez derrière les mandataires
Lorsque vous exécutez une application Express derrière un proxy inverse, certaines des API Express peuvent retourner des valeurs différentes de celles attendues. Pour ajuster pour cela, le paramètre trust proxy de l’application peut être utilisé pour exposer des informations fournies par le proxy inverse dans les API Express. Le problème le plus courant est les API express qui exposent l’adresse IP du client peut à la place afficher une adresse IP interne du proxy inverse.
Lors de la configuration du paramètre trust proxy, il est important de comprendre la configuration exacte du proxy inverse
. Puisque ce paramètre fera confiance aux valeurs fournies dans la requête, Il est important que
la combinaison du paramètre dans Express corresponde à la façon dont le proxy inversé fonctionne.
Le paramètre de l’application trust proxy peut être défini à l’une des valeurs listées dans la table suivante.
| Type | Valeur |
|---|---|
| Boolean | Si Si Lorsque vous définissez sur |
| Adresses IP | Une adresse IP, un sous-réseau ou un tableau d’adresses IP et de sous-réseaux à confier comme étant un proxy inverse. La liste suivante montre les noms de sous-réseaux pré-configurés :
Vous pouvez définir les adresses IP de l’une des façons suivantes : Lorsqu’il est spécifié, les adresses IP ou les sous-réseaux sont exclus du processus de détermination de l’adresse, et l’adresse IP non fiable la plus proche du serveur d’application est déterminée comme l’adresse IP du client. Cela fonctionne en vérifiant si |
| Nombre | Utilisez l’adresse qui est au plus Lors de l’utilisation de ce paramètre, il est important de s’assurer qu’il n’y a pas de multiples, chemins différents vers l’application Express de sorte que le client peut être inférieur au nombre de sauts configurés, sinon il pourrait être possible pour le client de fournir n’importe quelle valeur. |
| Fonction | Implémentation de confiance personnalisée. |
Activer trust proxy aura l’impact suivant :
La valeur de req.hostname est dérivée de la valeur définie dans l’en-tête
X-Forwarded-Host, qui peut être définie par le client ou par le proxy.X-Forwarded-Protopeut être défini par le proxy inverse pour dire à l’application si c’esthttpsouhttpou même un nom invalide. Cette valeur est reflétée par req.protocol.Les valeurs req.ip et req.ips sont remplies en fonction de l’adresse du socket et de l’en-tête
X-Forwarded-For, à partir de la première adresse non fiable.
Le paramètre trust proxy est implémenté en utilisant le paquet proxy-addr. Pour plus d’informations, voir sa documentation.