Proxy-Server für ausgehende Verbindungen in NodeJS konfigurieren

Diese Anleitung beschreibt wie Sie die IDNT Compute Cloud Proxy Server für ausgehende HTTP- Verbindungen in NodeJS konfigurieren.

Einführung

Oftmals wird der Zugriff auf externe Dienste benötigt. Ausgehende Verbindungen zu externen Seiten sind jedoch aus Sicherheitsgründen standardmäßig gesperrt. Dies erschwert zum Beispiel das Nachladen von Schadsoftware über eine von einem Angreifer gefundene Sicherheitslücke. Wir raten den Zugriff auf externe Systeme über unserer Proxy Server durchzuführen und diesen explizit nur an den Stellen im Programm zu ermöglichen, an welchen dieser auch benötigt wird. Die Proxy-Server können bereits einen Großteil möglicher Bedrohungen unterbinden.

Konfiguration der Proxy- Server - http-Client

Um mit NodeJS den Zugriff auf externe Dienste über einen Proxy Server zu ermöglichen, ist im http-Client als Zielserver der Proxyserver und als Pfad das eigentliche Ziel anzugeben. Hier ein Beispiel für den Zugriff auf https://www.idnt.net/de-DE:

var http = require("http");

var options = {
host: "proxy.compute.cloud.idnt.net",
port: 8080,
path: "https://www.idnt.net/de-DE",
headers: {
Host: "www.idnt.net"
}
};

http.get(options, function(res) {
res.pipe(process.stdout);
});

Die Option path: beschreibt die Zieladresse. Die Option Host: setzt den Host Header in der HTTP Anfrage was für zahlreiche Server erforderlich ist. Tragen Sie hier nur den Hostnamen der Zieladresse ein.

Konfiguration der Proxy- Server - request-Modul

Noch einfacher geht es mit Hilfe des Moduls request, einem vereinfachten http-Client. Das Modul ist unter https://github.com/mikeal/request verfügbar:

var request = require('request');

request({'url':'https://www.idnt.net/de-DE',
'proxy':'http://proxy.compute.cloud.idnt.net:8080'}, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
})