快速会话安全:true

express-session secure: true

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

我正在处理我新开发的网站上的一些安全问题。在网上做了一些研究后,如果设置了 secure=true,那么它会更安全。然而, 如果设置为 secure: true,那么每次用户发送另一个请求时,session 中的信息都会丢失。有没有办法解决这个问题?如果 cookie: 中不包含 "secure: true" ,则会话将持续该 maxAge。

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

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

简而言之,如果您使用 https(也就是说,在开发管道的后期阶段,当然在生产阶段),您应该只将 cookie 设置为 secure

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