从服务器重定向时,页面从 HTTPS 重定向到 HTTP
When redirecting from server, the page being redirected from HTTPS to HTTP
我们在 Amazon Beanstalk 服务上有一个应用程序 运行,它使用 sails.js 作为服务器,Backbone.js 作为客户端。
我们希望站点安全,因此我们需要仅允许 https 访问作为协议。
问题:
我们有一个负载均衡器,它获取 HTTPS 协议并将流量定向到 HTTP 端口 8080。这导致当从 node.js (sails) 重定向时,页面被重定向到不安全的协议,因为应用程序不知道它来了来自安全的...
这个问题有解决办法吗?
module.exports = function(req, res, next)
{
if (req.isAuthenticated())
return next();
else
{
// here the protocol is replaced with http
res.redirect('/login#');
}
}
一般来说,您需要检查 X-Forwarded-Proto header 以查看用户与负载平衡器的连接是通过 HTTP 还是 HTTPS。如果是HTTP则重定向到HTTPS。
关于重定向到 HTTP 的代码,看起来您没有在代码中执行任何操作来实际从 HTTP 重定向到 HTTPS,您只是在不更改协议的情况下重定向到登录页面。
我们在 Amazon Beanstalk 服务上有一个应用程序 运行,它使用 sails.js 作为服务器,Backbone.js 作为客户端。
我们希望站点安全,因此我们需要仅允许 https 访问作为协议。
问题: 我们有一个负载均衡器,它获取 HTTPS 协议并将流量定向到 HTTP 端口 8080。这导致当从 node.js (sails) 重定向时,页面被重定向到不安全的协议,因为应用程序不知道它来了来自安全的...
这个问题有解决办法吗?
module.exports = function(req, res, next)
{
if (req.isAuthenticated())
return next();
else
{
// here the protocol is replaced with http
res.redirect('/login#');
}
}
一般来说,您需要检查 X-Forwarded-Proto header 以查看用户与负载平衡器的连接是通过 HTTP 还是 HTTPS。如果是HTTP则重定向到HTTPS。
关于重定向到 HTTP 的代码,看起来您没有在代码中执行任何操作来实际从 HTTP 重定向到 HTTPS,您只是在不更改协议的情况下重定向到登录页面。