express-session-mongo与滚动你自己的优势

时间:2012-12-26 19:01:53

标签: node.js mongoose session-management

我是nodejs / mongo的新手,所以我最终滚动了自己的会话中间件,因为我不知道express-session-mongo

在我的中间件中,我将用户ID存储在会话中(通过express的会话中间件),然后在每个请求上加载登录的用户对象。我还允许用户将他们的用户/传递存储在一个httpOnly cookie中,以便“记住我”功能。

该npm的文档页面留下了一些需要的东西。

我的问题是:该模块与我写的内容有什么好处?我做了些蠢事吗?他们做得比我做得更好?

1 个答案:

答案 0 :(得分:1)

你的技术非常不安全。如果我只需要知道数据库中用户记录的ID,并且我可以在我的会话cookie中使用它来成为任意用户,那就是一个巨大的漏洞。会话ID应该是伪随机令牌,它们本身不包含任何数据。它们只是用于在服务器端查找数据的无法编号的数字。对于跨时间的每个会话,它们也应该是唯一的,而用户ID则不是。