A. *_*Lau 2 javascript session session-cookies node.js express
我无法从文档中找到任何关于秘密应该是静态字符串还是应该/可以是动态的信息.这就是我现在正在设置秘密的方式.
var salt1 = bcrypt.genSaltSync();
var salt2 = bcrypt.genSaltSync();
var secret = bcrypt.hashSync(salt1 + salt2, 10);
app.use(session({
// activeDuration: toTime("days", 7),
// duration: toTime("days", 7),
maxAge: toTime("days", 7),
saveUninitialized: false,
secret, // set this to a long random string!,
}));
Run Code Online (Sandbox Code Playgroud)
那么秘密应该是一次性的事情还是动态的呢?
通常,这些秘密用于对存储在客户端cookie中的会话数据进行签名和/或加密(在表达时,它用于对会话数据进行签名以防止篡改).
所以秘密必须是:
仅供参考,使用bcrypt生成它是没有意义的.bcrypt的目标是缓慢防止暴力破坏哈希.这与此无关.适当的随机性就足够了.
文档中的相关部分:
这是用于签署会话ID cookie的秘密.这可以是单个秘密的字符串,也可以是多个秘密的数组.
如果提供了一个秘密数组,则只有第一个元素用于签署会话ID cookie,而在验证请求中的签名时将考虑所有元素.
由于快速会话支持保留旧机密,因此您可以旋转活动机密.例如,每月一次,您可以在阵列中添加一个新的随机密钥,从而允许具有旧秘密的现有会话继续工作,而不会将其用于任何新会话.然后,一旦达到最大年龄,您就可以安全地删除多天未使用的秘密.像这样,会话秘密的意外泄漏会在一段时间后变得无害(除非有人在此期间滥用它)
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |