@fattan
программист

Как скрыть пароль для WebSocket авторизации на html странице?

Есть сайт. Когда пользователь авторизуется, то попадает в личный кабинет. Там сразу же устанавливается WebSocket соединение с сервером для обмена определенными данными. При WebSocket соединении передаются логин/пароль пользователя. Хранить прямо в html страницы эти данные очень не безопасно, я считаю.
Сначала было так:
initSocketConnect(host, port, {
							username: 'user1', 
							password: '96219fb9d5167cae28a6823b08ef2fd6', 
							reconnectPeriod: 4 * 1000
						});

Где в качестве пароля передавался md5 пароля прям из БД, а сервер просто сравнивал строки.
Потом я сделал некоторый аналог Challenge-response:
initSocketConnect(host, port, {
							username: 'user1', 
							password: '96219fb9d5167cae28a6823b08ef2fd6/12365', 
							reconnectPeriod: 4 * 1000
						});

Там в поле пароля через разделитель передавалась некоторая соль. Но потом я задумался: не изобретаю ли велосипед?
Отсюда вопрос: как в серьезных проектах это решается? Приходит в голову - сделать аутентификацию по ключу, как в различных Rest API (OAuth, JWT). Но пока не соображу как. Скажите, в какую сторону копать?
  • Вопрос задан
  • 382 просмотра
Пригласить эксперта
Ответы на вопрос 3
@RidgeA
Когда пользователь авторизуется, то попадает в личный кабинет.

Если пользователь авторизируется как-то, ему же выдается какой-то токен, который в куки, например, попадает.
Вот его и передавать в запросе на открытие ws соединения. При обработке открытия соединения и проверять в куках.
Ответ написан
petermzg
@petermzg
Самый лучший программист
Логин и пароль должны вводить пользователи, тогда сразу отпадет необходимость их хранить.
Ответ написан
Exploding
@Exploding
wtf?
Перепишите авторизацию на php, и проблема пароля отпадет сама собой
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы