【问题标题】:express-session secure: true快速会话安全:真
【发布时间】:2016-10-29 22:01:48
【问题描述】:
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,那么每次用户发送另一个请求时,会话内部的信息都会丢失。有没有办法解决这个问题?如果 cookie: 中不包含“secure: true”,则会话将持续该 maxAge。

【问题讨论】:

    标签: node.js security session express-session


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 那么 Youtube 是如何做到的呢?他们也使用 cookie,我认为他们的没有 maxAge 道具
    猜你喜欢
    • 2017-10-17
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 2019-12-29
    • 2012-09-27
    • 2016-07-06
    • 2018-07-21
    • 2016-08-08
    相关资源
    最近更新 更多