我应该使用什么express.cookieParser()秘密?

文档说它应该是保密的,但是我的代码在github上发布。

app.use(express.cookieParser(crypto.randomBytes(64).toString()))工作,或者应该在服务器重新启动时保密? 我应该把密码存储在磁盘上吗? 它需要多大的秘密?

为了保密您的秘密,您可以将其设置在一个环境variables(例如,称为“COOKIE_SECRET”)中,然后执行以下操作:

 var cookieSecret = process.env.COOKIE_SECRET; app.use(express.cookieParser( cookieSecret )); 

(或者如果你想要一个更复杂的configuration设置,你可能想看一下nconf ,它在环境variables,命令行参数和平面文件之间统一configuration)。

如果要在重新启动后保留会话,它应该是一样的。 秘密用于validation服务器上的会话数据以防止格式错误的cookie数据。 也许你可以写你的随机数据到一个文件,并从应用程序启动文件中读取秘密,如果文件存在,你不会创build一个新的随机密钥。

秘密是用来parsing和匹配会话cookie。 如果在重新启动后更改它,则会使先前的会话无效,因为cookie不会以新的密码生效。

尽pipe如此,如果cookies被盗,你可能会考虑改变秘密,这种保护你。 将秘密存放在需要的地方以外的地方是不好的做法。 与任何秘密和盐一样,因为访问它们不利于您的安全。