Gần đây tôi đã tạm dừng thiết lập HTTPS trên máy chủ nút/tốc độ. Tôi đã quản lý thành công để chuyển hướng tất cả các tuyến đường sử dụng https bằng cách sử dụng mã bên dưới:Chuyển hướng HTTPS cho tất cả các tuyến đường node.js/express - Các mối quan ngại về bảo mật
// 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);
});
Điều này có vẻ hoạt động tốt. Tuy nhiên, vì tôi đã không tham gia vào điều này trước khi tôi có một số câu hỏi:
- Đây có phải là cách lý tưởng để chuyển hướng từ http đến https không?
- Nếu người dùng sử dụng tuyến đường http, trước khi chuyển hướng là có thể cho bất kỳ ai sử dụng một cái gì đó như sslstrip để tìm hiểu thông tin phiên.
nút: v0.8.2; bày tỏ: v3.05
Peter cảm ơn phản hồi. Điều này thực sự hữu ích. – los7world
Điều này thật tuyệt, nhưng hơi khó để phát triển nếu bạn đang sử dụng không chuẩn (80 cho HTTP, 443 cho HTTPS), bởi vì nó cố gắng chuyển hướng đến địa chỉ 'https: // localhost: [PORT]'. Giải pháp thay thế là đặt một biến môi trường 'SSL_PORT' trong môi trường' development', và nếu nó được định nghĩa, hãy thay thế cổng. Xem [tại đây] (https://gist.github.com/gingi/47df42a45bb1653002ee#file-gistfile1-js-L5-L8) cho đoạn mã được sửa đổi. – Gingi
hei, làm thế nào tôi có thể kết nối với một khách hàng front-end sau khi làm điều này? Cảm ơn ! – alexsc