Node.js ExpressJS安全最佳实践(处理会话和cookie)

Node.js ExpressJS安全最佳实践(处理会话和cookie),node.js,express,cookies,express-session,Node.js,Express,Cookies,Express Session,我刚刚在这里读了一篇关于ExpressjS安全最佳实践的文章。它还提到,express session包只针对开发环境而不是生产环境设计。那么,这是否意味着我不能使用express session在我的应用程序中实现身份验证和授权功能?在生产环境中如何使用它?有安全问题吗?请帮忙解释一下。谢谢。你误解了它的内容 中间件在服务器上存储会话数据;信息技术 仅将会话ID保存在cookie本身中,而不保存会话数据。通过 默认情况下,它使用内存存储,而不是为 生产环境。在生产中,您需要设置一个 可扩展会话

我刚刚在这里读了一篇关于ExpressjS安全最佳实践的文章。它还提到,express session包只针对开发环境而不是生产环境设计。那么,这是否意味着我不能使用express session在我的应用程序中实现身份验证和授权功能?在生产环境中如何使用它?有安全问题吗?请帮忙解释一下。谢谢。

你误解了它的内容

中间件在服务器上存储会话数据;信息技术 仅将会话ID保存在cookie本身中,而不保存会话数据。通过 默认情况下,它使用内存存储,而不是为 生产环境。在生产中,您需要设置一个 可扩展会话存储;请参阅


这意味着您应该使用外部存储来使用会话(如DB或Redis等键值存储),以防止在应用程序重新启动或崩溃时丢失会话数据。

这可能有帮助吗?是的,您应该使用诸如Redis之类的持久会话存储。express会话支持外部数据存储。我现在使用passport.js。据我所知,它提供了持久会话。但是我不知道什么时候重新启动服务器,会话数据也会丢失。但是当我用帐户登录,比如说“a”,然后注销,再用帐户“b”重新登录时,会话id的值是相同的。这是真的吗?你能解释一下“ExpressMySQL会话”包是如何工作的吗?你可以在表中看到。它将数据存储在那里。如果帐户用户名为“b”,则可以。是的,“passport”对象存储不同的用户名。但是其他数据存储相同的值。再来一个问题,兄弟。呵呵,你能帮我看看sequelize.js吗?它与PHP中的PDO相同吗?