【发布时间】:2013-05-04 17:25:56
【问题描述】:
cookieParser() 为我们提供了使用秘密语句签署 cookie 的选项,这对于防止篡改非常有用。我了解 cookie 使用特殊值签名,以防止篡改。
我刚刚发现了 cookieSession(),我发现它是服务器存储 cookie 的一个伟大替代品(我只存储 { loggedIn = true, userId=763487246824632},它永远不会增长)。
但是...我发现为 cookieParser() 设置“秘密”会破坏事情,并且 cookieSession() 会停止工作如果秘密句子匹配。 原因似乎是,如果 cookie 使用相同的秘密进行签名,那么 cookieParser() 实际上会接受并解析它。奇怪的是,一旦 cookieParser() 完成了它的工作,并且具有相同的签名秘密,会话被设置为:
{ cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true } }
而不是:
{ testing: 'OOO' }
(每次重新加载都会添加一个“o”) 所以……
- 我的分析是否正确?
- 如果秘密句子匹配,您知道为什么会话设置为那个奇怪的
{ cookie对象吗?
佣兵。
【问题讨论】: