Formation sur Express et Node.js à partir de StrongLoop

Cette traduction fournie par StrongLoop / IBM.

Il se peut que ce document soit obsolète par rapport à la documentation en anglais. Pour connaître les mises à jour les plus récentes, reportez-vous à la documentation en anglais.

Express derrière proxys

Lorsque vous exécutez une application Express derrière un proxy, affectez à la variable d’application trust proxy l’une des valeurs indiquées dans le tableau suivant, en utilisant app.set().

L’exécution de l’application n’échouera pas si la variable d’application trust proxy n’est pas définie, mais l’adresse IP du proxy sera enregistrée de manière incorrecte en tant qu’adresse IP du client.``

TypeValeur
Booléen

Si la valeur est true, l’adresse IP du client est interprétée comme étant l’entrée la plus à gauche dans l’en-tête X-Forwarded-*. Si la valeur est false, l’application est interprétée comme étant directement accessible sur Internet et l’adresse IP du client est dérivée de req.connection.remoteAddress. Il s’agit du paramètre par défaut.

Adresses IP

Adresse IP, sous-réseau ou tableau d’adresses IP et de sous-réseaux auxquels faire confiance. La liste suivante montre les noms de sous-réseau préconfigurés : * loopback - 127.0.0.1/8, ::1/128 * linklocal - 169.254.0.0/16, fe80::/10 * uniquelocal - 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7

Vous pouvez définir les adresses IP de l’une des manières suivantes :

app.set('trust proxy', 'loopback') // specify a single subnet
app.set('trust proxy', 'loopback, 123.123.123.123') // specify a subnet and an address
app.set('trust proxy', 'loopback, linklocal, uniquelocal') // specify multiple subnets as CSV
app.set('trust proxy', ['loopback', 'linklocal', 'uniquelocal']) // specify multiple subnets as an array

S’ils sont spécifiés, les sous-réseaux ou les adresses IP sont exclus du processus d’identification d’adresse, et l’adresse IP sans confiance la plus proche du serveur d’applications est identifiée comme étant l’adresse IP du client.

Numérique

Approuve le nème tronçon à partir proxy de face comme étant le client.

Fonction

Implémentation de confiance personnalisée. N’utilisez cette option que si vous êtes sûr de vous.

app.set('trust proxy', function (ip) {
  if (ip === '127.0.0.1' || ip === '123.123.123.123') return true; // trusted IPs
  else return false;
});

La définition d’une valeur autre que false trust proxy entraîne trois modifications importantes :

Le paramètre trust proxy est implémenté à l’aide du package proxy-addr. Pour plus d’informations, consultez la documentation associée.