LINUX.ORG.RU

Организация аутентификации для случая двух серверов

 ,


0

1

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

Допустим, есть 2 сервера. На одном поднят бекенд, на другом фронтенд. При этом кроссдоменные запросы принимаются без проблем и вообще приложение работает

Я хотел бы реализовать систему аутентификации. Раньше, когда в моих приложениях для фронтенда и бекенда использовался один и тот же сервер я использовал значение токена, который сам фреймворк генерировал и помещал в сессию. Сути этого процесса я не понимал

У меня есть идея как решить проблему для моего случая. я её опишу, а вы пожалуйста скажите хорошее ли оно или лучше использовать другое

1. В БД есть таблица users. В ней каждый пользователь системы имеет свою запись. в этой записи хранится его персональный пароль, зашифрованный при помощи какого-нибудь алгоритма шифрования

2. id этой записи используются при выборке из всех остальных таблиц БД

3. При попытке регистрации пользователь видит форму, в которую вводит пароль. После отправки формы на стороне бекенда этот пароль шифруется тем же алгоритмом шифрования(что и в пункте 1) и происходит поиск совпадающей строки в таблице users

4. Если такая строка найдена, то хранилице браузера(куки/локалсторадж/сессионсторадж) происходит запись не зашифрованного пароля и id записи.

5. После этого пользователь считается авторизованным и получает доступ к недоступным до этого разделам сайта. Но при каждом запросе данных, кроме всего прочего, отправляется также не зашифрованный пароль и id, которые хранятся в хранилище браузера

6. И на стороне бекенда в каждом контроллере стоит условие, которое шифрует принятый пароль и ищет совпадение в таблице users. Если совпадение найдено, то контроллер отдаёт данные


Нет.

И запомни навсегда, хранить пароли - априори зло. И уж тем более хранить их в куках\сторах клиента.

Все что ты можешь хранить, это соленые хеши от них.

А твоя задача решается все теми же динамически генерируемыми токенами.

anonymous
()
Ответ на: комментарий от anonymous

Теперь понятно, что я изобретаю велосипед, буду читать про токены

Но всё же, хранить пароли хотя бы в виде солёных хешей в куках/торах браузера это не совсем плохая практика? И на сайтах, к которым нет каких-то особенных требований по безопасности, использовать её нормально?

prozaik
() автор топика
Ответ на: комментарий от prozaik

На стороне клиента нельзя - это плохая практика и брешь в безопасности. Так как хэш он статичен, в отличии от токена, который завязан на сессию (которая в свою очередь может быть привязана и к айпи, и к другим фингерпринтам клиента). То есть даже если уведут токен, он может быть либо неликвидным на другой машине (злоумышленника), либо быстро устареет (в зависимости от алгоритма его проверки). В то время как хэш пароля - это хэш пароля. Зачем к нему привязывать сессионную активность?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.