快速会话安全:true

Pan*_*ano 8 security session node.js express-session

app.use(session({
    secret: "testing credentials",
    store: sessionStore,
    resave: true,
    saveUninitialized: true,
    cookie  : {
        httpOnly: true,
        //secure: true,
        maxAge  : 60 * 60 * 1000 
    }
}));
Run Code Online (Sandbox Code Playgroud)

我正在解决我新开发的网站上的一些安全问题。并且在网上查了一些资料,如果设置了secure=true,那就更安全了。但是,如果设置secure: true,则每次用户发送另一个请求时,会话中的信息都会丢失。有没有办法解决这个问题?如果 cookie: 中不包含“secure: true”,则会话将持续该 maxAge。

Gab*_*yel 12

如果 cookie 设置了该secure标志,它只会由浏览器通过 https 发送到服务器,而不是普通的 http。这应该是生产环境的默认设置。

但是,在开发应用程序时,您可能会在开发机器上使用普通的 http。如果您secure在这种情况下设置会话 cookie (使用普通 http),服务器将永远不会收到它,并且您将在每个请求中遇到一个新的空会话。

所以简而言之,您应该只像secure使用 https一样设置 cookie (也就是说,在开发管道的后期阶段,绝对是在生产中)。

另一方面,如果您设置了maxAge,cookie 将被持久化,这不是会话 cookie 的最佳实践。如果没有maxAge,cookie 将一直保留到用户关闭浏览器,并且通常不会持久保存到磁盘,这是会话 cookie 的正确行为。