Node.js 在Express.js中,在会话中存储任何数据是否安全?

Node.js 在Express.js中,在会话中存储任何数据是否安全?,node.js,security,session,cookies,express,Node.js,Security,Session,Cookies,Express,我习惯于只做饼干 使用cookies,我会保存用户名和散列,并在每次页面加载时执行数据库查询,以确保用户拥有正确的密码。我正要对会话做同样的事情,这时我突然意识到用户不能编辑会话 理论上,我可以说: req.session.authenticated = true 只需测试用户是否已通过身份验证,而无需重新检查密码是否正确 这样做安全吗? 或者是否需要存储用户名和哈希 另外,我正在使用Express 4.8.6和Express session 1.7.6在cookie中不存储任何工作数据。相反

我习惯于只做饼干

使用cookies,我会保存用户名和散列,并在每次页面加载时执行数据库查询,以确保用户拥有正确的密码。我正要对会话做同样的事情,这时我突然意识到用户不能编辑会话

理论上,我可以说:

req.session.authenticated = true
只需测试用户是否已通过身份验证,而无需重新检查密码是否正确

这样做安全吗? 或者是否需要存储用户名和哈希

另外,我正在使用Express 4.8.6和Express session 1.7.6

在cookie中不存储任何工作数据。相反,它将uuid存储在cookie中,然后将该uuid与会话存储中的数据相匹配(默认为内存中)

所以如果我访问你的网站,你会给我一个包含
23949324
的cookie。您分配给我的会话的任何数据都将存储在我的浏览器之外的某个位置,我的cookie仍然是
23949324
。Redis是一个公共会话存储

您可以执行
req.session.creditcard=“4186xxxxxxxxxxx”
,这在技术上是安全的,至少在cookie领域是安全的。实际上,您可能不应该将信用卡数据明文存储在会话存储中


如果您想要持续的治疗,我推荐。

非常有用-谢谢!