快速会话安全:适用于生产

问题描述 投票:0回答:1
app.use(session({
  secret: SESSION_SECRET || 'default-secret',  
  resave: false,
  saveUninitialized: true,
  cookie: {
      httpOnly: true,  
      secure: true //for production, 
      maxAge: 10 * 60 * 1000  
  }
}));

我正在解决我新开发的 Web 应用程序的一些安全问题。经过在线研究后,如果设置 secure=true,那么它将更安全,并且应该仅用于生产。但是,如果设置 secure: true,那么每次用户发送另一个请求时,即使在生产中,会话中的信息也会丢失,就像在生产中我使用 https 一样。有没有办法解决这个问题?

我尝试过

secure: true //for production
进行生产,而且我也在使用
https
但它不起作用。

node.js security session production express-session
1个回答
0
投票

如果您的应用程序在反向代理(例如 Nginx 或 Heroku)后面运行,则 Express 应用程序可能会将传入的 HTTPS 请求解释为 HTTP。在这种情况下,secure: true 将阻止发送会话 cookie。

app.set('trust proxy', 1);
© www.soinside.com 2019 - 2024. All rights reserved.