Express Session 可以使用 Load Balancer 创建相同的会话 ID

Can Express Session create identical session id with Load Balancer

我正在使用 2 台使用 ebs 的机器来为我的网站提供服务器。它写在express.js,有2个节点服务器运行。我使用 express-sessions 创建会话并将其存储在 redis 中。

这两台机器是否有可能最终创建相同的会话 ID?

在后台,express-session 使用 uid-safe to generate the session ID, which, in turn, should use crypto.randomBytes(如果可用)。

这应该保证 UID 基于足够安全的数据以用于密码学,这意味着它在大多数情况下应该是完全不可预测和不可复制的。我会启动一个 node 进程并确认 crypto.randomBytes 可用。

如果您想跟踪哪个进程创建了会话 ID,您还可以使用一些 crpyto 方法,这些方法使您能够使用 salts/tokens 进一步编码生成的 UID,这是唯一的每个 运行 进程。

您可能想在 Cryptography SE or Security SE 上进一步讨论这个问题,以获得专家同行的详细信息,但是,就您而言,在 express-session,不仅仅是不同机器上的进程 运行,甚至是同一环境中的进程 运行。