Node.js express.cookieParser()secret应该使用什么?

Node.js express.cookieParser()secret应该使用什么?,node.js,security,cookies,express,Node.js,Security,Cookies,Express,文档说它应该是秘密的,但我的代码发布在github上 app.use(express.cookieParser(crypto.randomBytes(64.toString()))会起作用吗?还是在服务器重新启动时,密码应该是相同的?我应该把秘密存储在磁盘上吗?它需要保密到什么程度?如果您希望在重新启动后保留会话,则保密级别应该相同。 该密码用于验证服务器上的会话数据,以防止格式错误的cookie数据。 也许你可以将你的随机数据写入一个文件,并在应用程序启动时从文件中读取密码,如果文件存在,你就

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


app.use(express.cookieParser(crypto.randomBytes(64.toString()))
会起作用吗?还是在服务器重新启动时,密码应该是相同的?我应该把秘密存储在磁盘上吗?它需要保密到什么程度?

如果您希望在重新启动后保留会话,则保密级别应该相同。 该密码用于验证服务器上的会话数据,以防止格式错误的cookie数据。
也许你可以将你的随机数据写入一个文件,并在应用程序启动时从文件中读取密码,如果文件存在,你就不会创建新的随机密钥。

密码用于解析和匹配会话cookie。如果在重新启动后对其进行更改,则会使以前的会话无效,因为cookie对新密钥无效


但是,如果饼干被偷走了,你可以考虑改变秘密,这可以保护你。把秘密藏在需要的地方以外的任何地方都不是好的做法。与任何机密和盐一样,因为访问它们对您的安全不利。

要保留您的机密,您可以在环境变量(例如称为“COOKIE\u secret”)中设置它,然后您可以执行以下操作:

var cookieSecret = process.env.COOKIE_SECRET;

app.use(express.cookieParser( cookieSecret ));
(或者,如果您想要更复杂的配置设置,您可能想看看。它统一了环境变量、命令行参数和平面文件的配置)