2015-05-21 7 views
0

У меня есть два сервера,Node.js: Redis осветление безопасности

  • ServerA - nodejs сервер в производстве, уже имеет модуль аутентификации, очень мало свободы, чтобы изменить код, я добавил модуль, который обеспечивает ключ маркера к серверу.
  • ServerB - nodejs сервер, а не на производстве, больше свободы для изменения кода, поскольку он не должен иметь независимый модуль аутентификации, зависит от ключа токена от сервераA для аутентификации пользователей.

Я использовал crypto модуль для генерации токенов и имел такое же семя шифрования в serverA и serverB.

Это сработало, но токен-ключ, который не закончился, беспокоил меня. Но серверы независимы, и, следовательно, время сервера не будет синхронизировано, из-за некоторого контроля, может даже быть несколько дней друг от друга.

Затем я наткнулся на redis, прочитав об этом сейчас, раньше не использовал.

Что делать, если я запустил redis DB на сервереB, а serverA устанавливает в нем истекающий токен, а serverB проверяет каждый входящий запрос на токен против него. Правильно ли это использовать redis, какие бы недостатки были и что самое главное, приведет ли это к любой лазейке безопасности?

ответ

1

Основываясь на моем опыте работы с узлом и redis, я думаю, что это может быть хорошим решением для вашего случая, но если у вас слишком много запросов, я предлагаю иметь 2 сервера redis - очень легко настроить, каждый сервер, где serverA является ведущим, а serverB является ведомым, когда серверу необходимо установить токен, он будет устанавливать его с его локальным сервером redis, в то же время серверB может видеть новый ключ с его ttl и действовать соответственно, в отношении я думаю, у вас есть два варианта: либо вы устанавливаете пароль для повторных подключений, либо блокируете доступ к используемому порту -6379 по умолчанию - на уровне брандмауэра или на уровне сервера, если вы на самом деле не думаете о масштабировании своей структуры Я бы предложил заблокировать доступ.