我使用 2 台使用 ebs 的机器来为我的网站提供服务。它用 express.js 编写,有 2 个节点服务器正在运行。我使用快速会话创建会话并将其存储在 redis 中。
两台机器是否有可能最终创建相同的会话ID?
我使用 2 台使用 ebs 的机器来为我的网站提供服务。它用 express.js 编写,有 2 个节点服务器正在运行。我使用快速会话创建会话并将其存储在 redis 中。
两台机器是否有可能最终创建相同的会话ID?
在后台,express-session
用于uid-safe
生成会话 ID,如果可用,则应使用该会话 ID。 crypto.randomBytes
这应该保证 UID 基于足够安全以用于密码学的数据,这意味着它在大多数情况下应该是完全不可预测和不可重现的。我会启动一个node
流程并确认它crypto.randomBytes
可用。
如果您想跟踪哪个进程创建了会话 ID,您可以另外使用一些crpyto
方法,这些方法使您能够使用每个正在运行的进程唯一的盐/令牌对生成的 UID 进行进一步编码。
您可能希望在Cryptography SE或Security SE上进一步讨论这一点,以获取专家同行的详细信息,但是,就您而言,使用默认会话 ID 生成器应该是安全的express-session
,而不仅仅是进程正在运行在不同的机器上,但即使对于在同一环境中运行的进程也是如此。