Ich habe vor kurzem einen Versuch unternommen, HTTPS auf einem Knoten/Express-Server einzurichten.HTTPS-Umleitung für alle Routen node.js/express - Sicherheitsbedenken
// force https redirect
var https_redirect = function(req, res, next) {
if (req.secure) {
if(env === 'development') {
return res.redirect('https://localhost:3000' + req.url);
} else {
return res.redirect('https://' + req.headers.host + req.url);
}
} else {
return next();
}
};
app.get('*', function(req, res, next) {
https_redirect(req, res, next);
});
Dies scheint zu funktionieren gut: Ich habe erfolgreich umgeleitet werden alle Routen verwenden https mit dem Code unten geführt werden. Da ich mich jedoch nicht vorher damit beschäftigt habe, bevor ich ein paar Fragen habe:
- Ist dies der ideale Weg um von http zu https umzuleiten?
- Wenn ein Benutzer die HTTP-Route verwendet, ist es vor der Weiterleitung für jeden möglich, etwas wie sslstrip zu verwenden, um Session-Informationen zu erschnüffeln.
Knoten: v0.8.2; ausdrücken: v3.05
Peter danke für die Antwort. Das hat wirklich geholfen. – los7world
Das ist großartig, aber es ist etwas problematisch für die Entwicklung, wenn Sie Nicht-Standard verwenden (80 für HTTP, 443 für HTTPS), weil es versucht, zu 'https: // localhost: [PORT]' umzuleiten. Eine Problemumgehung besteht darin, eine 'SSL_PORT'-Umgebungsvariable in der' Entwicklungsumgebung 'zu setzen und, falls definiert, den Port zu ersetzen. Siehe [hier] (https://gist.github.com/gingi/47df42a45bb1653002ee#file-gistfile1-js-L5-L8) für das modifizierte Snippet. – Gingi
hei, wie kann ich nach diesem Vorgang eine Verbindung mit einem Front-End-Client herstellen? Vielen Dank ! – alexsc