gpt4 book ai didi

Node.js cookie 和 session 管理

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:06 24 4
gpt4 key购买 nike

在网上浏览有关cookies和session的信息后,我正在使用express和cookie/session在nodejs中创建一个简单的登录,使用redis作为我的数据存储。

您认为用户登录后处理 cookie/session 的最佳方式是什么?我心里也有这样的疑问:

  1. 如何防止使用 userA cookie 注入(inject) userB 的浏览器?
  2. 在执行任何流程之前我需要检查 Cookie 的值吗?
  3. 使用 cookieParser connect.sid 在每个浏览器中都是唯一的是否安全?
  4. app.use(session({secret: 'secretkey', key: 'quser'})); 这个 secret 到底是关于什么的?

我无法决定如何正确使用它们。谢谢大家。

最佳答案

根据 session 中间件( https://github.com/expressjs/session )

secret - session cookie is signed with this secret to prevent tampering.

secret 选项将确保您的 cookie 不被修改。

有很多关于窃取 cookie 和防止跨站脚本的文章。一种可能的方法是通过提供选项 httpOnly : true 使 cookie 对 javascript 不可用

cookie - session cookie settings. (default: { path: '/', httpOnly:
true, secure: false, maxAge: null })

Do I need to check the value of the cookies before performing any process?

通常,您会在 cookie 中保存一些识别您的 session 的信息,并且 session 数据会保存在服务器上。您可以自己完成,但有一些很棒的库可以提供帮助。在 Express 中处理身份验证最常用的方法之一是 Passport.js ( http://passportjs.org/ )

使用passportjs时,您将实现两个方法serializeUser和deserializeUser。它们将在每次请求时被调用,以根据 cookie 中保存的身份获取用户数据。在这里您可以使用例如 mongo 或 redis

关于Node.js cookie 和 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24232234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com