Есть ли необходимость в аутентификации соединения socket.io, если у него есть общий сеанс с экспресс? - PullRequest
0 голосов
/ 08 ноября 2019

Я видел этот вопрос и ответ , который объясняет, как делиться сессиями с Socket.IO 1.x и Express 4.x и в этом блоге , в котором предлагается использовать socketio-аутентификации .

Есть ли необходимость использовать оба подхода для аутентификации, если вы уже делитесь сеансами с Express. Добавляет ли это какое-либо преимущество в безопасности?

1 Ответ

1 голос
/ 08 ноября 2019

Если у вас уже есть сеанс с проверкой подлинности через http в Express, то соединение socket.io действительно просто другое соединение http (фактически оно начинается с http-соединения и затем преобразуется в протокол webSocket (со слоем socket.io). сверху). Итак, если вы готовы доверять сеансу для следующего http-запроса от этого клиента, то ничто не отличается от доверия сеансу для входящего соединения socket.io от этого же клиента. Это одно и то же.

Где может быть полезно с нуля установить соединение socket.io, если у вас еще нет аутентифицированной http-страницы, с которой происходит соединение socket.io, либо из-за соединения socket.ioэто собственный API и собственный сервис, возможно, даже на отдельном хосте, поэтому нет «другой» аутентификации, на которую можно положиться.

Нужно ли использовать оба подхода для аутентификации, если вы уже делитесьсеансы с экспрессом.

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

Добавляет ли это какое-либо преимущество в безопасности?

Только если по какой-то причине выЯ хочу запрашивать аутентификацию при каждом новом запросе и вообще не полагаться на куки-файл сеанса, даже для http-запросов. Или, если нет файла cookie сеанса, потому что соединение socket.io идет к другому хосту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...