Может ли Express Session создать идентичный идентификатор сессии с помощью балансировщика нагрузки

Я использую 2 машины, используя ebs для сервера моего сайта. Он написан в express.js, там работают 2 сервера узлов. И я создаю сессии, используя экспресс-сессии и сохраняя их в Redis.

Есть ли вероятность того, что 2 машины могут в итоге создать идентичный идентификатор сессии?

1 ответ

Решение

Под капотом, express-session использования uid-safe генерировать идентификатор сессии, который, в свою очередь, должен использовать crypto.randomBytes если доступно.

Это должно гарантировать, что UID основан на данных, которые являются достаточно безопасными для использования в криптографии, что означает, что он должен быть полностью непредсказуемым и невоспроизводимым в большинстве случаев. Я бы запустил node обрабатывать и просто подтвердить, что crypto.randomBytes доступен.

Если вы хотите отслеживать, какой процесс создал идентификатор сеанса, вы можете дополнительно использовать некоторые из crpyto методы, которые позволят вам дополнительно кодировать полученный UID с помощью солей / токенов, которые являются уникальными для каждого запущенного процесса.

Возможно, вы захотите обсудить это более подробно на Cryptography SE или Security SE для получения мельчайших подробностей от экспертов, но, насколько вам известно, использовать генератор идентификатора сеанса по умолчанию в express-sessionне только с процессами, запущенными на отдельных машинах, но даже с процессами, работающими в одной среде.

Другие вопросы по тегам