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
,不仅仅是不同机器上的进程 运行,甚至是同一环境中的进程 运行。
我正在使用 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
,不仅仅是不同机器上的进程 运行,甚至是同一环境中的进程 运行。