Недавно я получил удар по настройке HTTPS на сервере node/express. Мне удалось перенести все маршруты на использование https, используя следующий код:
// 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);
});
Кажется, это работает нормально. Тем не менее, поскольку я не имел права на это, прежде чем у меня возникнет пара вопросов:
- Это идеальный способ перенаправления с http на https?
- Если пользователь использует маршрут http, перед перенаправлением возможно, чтобы кто-нибудь использовал что-то вроде sslstrip, чтобы вынюхивать информацию о сеансе.
node: v0.8.2; экспресс: v3.05