Сайт имеет обычную систему авторизации (логин и пароль). Websocket нужен для обновления данных в реальном времени. Данные связаны с пользователем и надо авторизовать пользователя подключённому к websocket, чтобы передавать данные пользователя только этому пользователю.
Если я сгенерирую токен и сохраню его в базу данных при переходе на нужную страницу (где подключение к websocket) и после передам этот токен на клиент, а потом передам в url параметр подключения к websocket, а потом проверю этот токен в базе данных. Если токен правильный, то удалить его (чтобы больше им не пользовались) и подключить пользователя (и передавать данные в этом подключении). Если пользователь открывает эту же страницу ещё раз (2 в браузере), то открывается новое подключение уже с новым токеном (просто уточнил почему можно удалить токен).
В данный момент данные пользователя передаваемые по websocket не конфиденциальные, но и не видны другим пользователям, если их кто-то другой получит, то они бесполезные.
Нормально ли так делать или есть решение лучше?
Как вы делаете авторизацию на websocket?
И вопрос про безопасность токенов вообще. Возможно ли перехватить токен пока он идёт от сервера к клиенту, расшифровать (если есть ssl) и подключиться до того, как пользователь начнёт подключение? Если это атака на конкретного пользователя? Может это бред и так это не работает?
Я ещё плохо разбираюсь в сетях и безопасности, если у вас есть хорошие статьи об этом, то скиньте их, пожалуйста.
Dr. Bacon, Сайт wordpress и у него cookie установлены с атрибутом httponly, и их не передать по websocket. Или может у вас есть идеи как совместить wordpress и websocket? Используется workerman для websocket.