Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Авторизация: запомнить логин и пароль / 25 сообщений из 34, страница 1 из 2
16.12.2019, 20:46
    #39903707
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
На волне изучения UniGUI сделал форму авторизации.
Но её ведь можно не показывать, если пользователь на форме логина включил "запомнить меня".
Ведь мы не вводим на форумах постоянно свои логи и пароль. Это удобно, да.

Так вот... Если там что-то заумное или всё до безобразия проста, ну т.е. подскажите, как это правильно организовать. Не хранить же логин/пароль в куках...
Т.е. в базе на сервере генерировать какой-то ключ и его можно хранить вместе с логином в куках браузера или просто ключ даже без логина.
А когда пользователь открывает веб-приложение, то проверять ключ, дату последнего входа и сразу открывать главную форму вместо формы логина?
Так правильно?


P.S. В моём UniGUI приложении браузер не предлагает запомнить логин и пароль. Так и должно быть?
...
Рейтинг: 0 / 0
16.12.2019, 23:17
    #39903769
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
X11,

логин, имя компьютера и домена на стороне БД проверить не проблема (например, в T-SQL, так : http://www.cyberforum.ru/sql-server/thread625328.html). допустим, стоит галочка, запомнить меня. При первом входе, проверив серверную аутентификацию, запоминаем, что он прошел ее и стоит галочка. Пока галочку не снимет, автоматически подключаем. как то так, наверное...
...
Рейтинг: 0 / 0
17.12.2019, 11:18
    #39903938
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
X11,

авторP.S. В моём UniGUI приложении браузер не предлагает запомнить логин и пароль. Так и должно быть?

далеко не каждый передаваемый параметр браузеры воспринимают как логин/пароль. часто 'магия' заканчивается на явных user= password=
...
Рейтинг: 0 / 0
17.12.2019, 13:11
    #39904051
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
Так в том-то и дело, что явные нельзя оставлять. Небезопасно.
...
Рейтинг: 0 / 0
17.12.2019, 18:18
    #39904281
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
X11,

кладешь в куку идешник клиента и вася кот
...
Рейтинг: 0 / 0
17.12.2019, 18:36
    #39904296
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
В куку кладешь
Код: pascal
1.
MD5(id + ':' + login + ':' +password)


Можешь еще добавить время последнего логина и/или User Agent. На сервере проверяешь хеш
...
Рейтинг: 0 / 0
17.12.2019, 18:58
    #39904316
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
пошла жара )
...
Рейтинг: 0 / 0
17.12.2019, 20:29
    #39904364
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
_Vasilisk_
В куку кладешь
Код: pascal
1.
MD5(id + ':' + login + ':' +password)


Можешь еще добавить время последнего логина и/или User Agent. На сервере проверяешь хеш
это уже всё устарело и небезопасно - если твой кеш можно перехватить, значит тебя можно подменить, это такой же пароль выходит.

обмен например по типу Ntlmv2 , более безопасен
...
Рейтинг: 0 / 0
17.12.2019, 21:30
    #39904378
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
kealon(Ruslan)
обмен например по типу Ntlmv2 , более безопасен


Круто, но, к сожалению, в Delphi такого нет. А сому писать очень и очень долго придётся :(
...
Рейтинг: 0 / 0
17.12.2019, 21:59
    #39904386
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
kealon(Ruslan)
обмен например по типу Ntlmv2 , более безопасен
Это пересылка пароля. А задача состоит в сохранении статуса
...
Рейтинг: 0 / 0
17.12.2019, 22:03
    #39904388
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
kealon(Ruslan)
_Vasilisk_
В куку кладешь
Код: pascal
1.
MD5(id + ':' + login + ':' +password)



Можешь еще добавить время последнего логина и/или User Agent. На сервере проверяешь хеш
это уже всё устарело и небезопасно - если твой кеш можно перехватить, значит тебя можно подменить, это такой же пароль выходит.

обмен например по типу Ntlmv2 , более безопасен

А пароли-то где хранить?
...
Рейтинг: 0 / 0
17.12.2019, 22:05
    #39904389
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
X11
Круто, но, к сожалению, в Delphi такого нет. А сому писать очень и очень долго придётся :(

День, если тупить?

Тебе не надо соблюсти все стандарты NTLM, тебе достаточно сделать свою реализацию на подобие её.
...
Рейтинг: 0 / 0
18.12.2019, 00:17
    #39904413
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
_Vasilisk_
kealon(Ruslan)
обмен например по типу Ntlmv2 , более безопасен
Это пересылка пароля. А задача состоит в сохранении статуса
там ни пароль, ни хэш о котором вы написали в первом комменте не передаётся

схема приблизительно такая:
Код: plaintext
1.
2.
3.
сервер: - а пришли как мне хэш вот от этой фигни и хеша своего логина и пароля
клиент: - запросто 
сервер: - однакож совпадает, ок тебе доступ
...
Рейтинг: 0 / 0
18.12.2019, 00:56
    #39904418
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
kealon(Ruslan),
Там на клиенте шифруется рандомный блок серверных данных, результат передается обратно сервер, расшифровывается и сравнивается с исходным; тут предполагается, что пароли (ключи шифрования) есть и на клиенте, и не а сервере - либо одинаковые (в случае симметричного шифрования). Либо на сервере лишь открытый ключ, а на клиенте закрыты в случае ассиметричного.
Снова встает вопрос хранения секретных данных на клиенте.
Решение совсем другой задачи.
...
Рейтинг: 0 / 0
18.12.2019, 01:16
    #39904421
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
Хранить в LocalStorage .
...
Рейтинг: 0 / 0
18.12.2019, 07:04
    #39904440
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
kealon(Ruslan)
обмен например по типу Ntlmv2 , более безопасен

не обернется ли это болью и страданием для клиентов, которые не используют браузер и ос от ms?
...
Рейтинг: 0 / 0
18.12.2019, 09:38
    #39904481
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
ёёёёё
kealon(Ruslan),
Там на клиенте шифруется рандомный блок серверных данных, результат передается обратно сервер, расшифровывается и сравнивается с исходным; тут предполагается, что пароли (ключи шифрования) есть и на клиенте, и не а сервере - либо одинаковые (в случае симметричного шифрования). Либо на сервере лишь открытый ключ, а на клиенте закрыты в случае ассиметричного.
Снова встает вопрос хранения секретных данных на клиенте.
Решение совсем другой задачи.
я реализовывал этот алгоритм, нету там ничего такого
в данном случае его и не надо реализовывать
rgreat
Тебе не надо соблюсти все стандарты NTLM, тебе достаточно сделать свою реализацию на подобие её.


аналогично и на
Дегтярев Евгений
kealon(Ruslan)
обмен например по типу Ntlmv2 , более безопасен

не обернется ли это болью и страданием для клиентов, которые не используют браузер и ос от ms?

для реализации нужна всего лишь поддержка JS и localStorage, не нужно реализовывать базовую авторизацию
...
Рейтинг: 0 / 0
18.12.2019, 10:29
    #39904528
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
kealon(Ruslan),

В современных условиях тотального https нет смысла огород городить.
...
Рейтинг: 0 / 0
18.12.2019, 10:50
    #39904539
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
Kazantsev Alexey
Хранить в LocalStorage .

а какая разница, где именно хранить?
...
Рейтинг: 0 / 0
18.12.2019, 10:58
    #39904548
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
X11
а какая разница, где именно хранить?

В смысле, в куках или в сторе?
...
Рейтинг: 0 / 0
18.12.2019, 11:27
    #39904573
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
kealon(Ruslan)

не вижу смысла делать "свое наподобие"


X11

в общем случае, безотносительно UniGUI
HTML - stateless протокол . Это значит что информацию, по которой сервер может идентифицировать клиента/сессию надо передавать с каждым запросом.

Этой информацией может быть как сама пара логин-пароль ( basic схема), так и хеши с их участием (digest, ntlm). Basic-аутентификация самый простой способ в реализации и поддерживается всеми браузерами, но не безопасен без HTTPS. Если credentials не переданы браузером или они не верные, сервер отвечает статусом 401 и браузер показывает окошко для ввода логопаса. Введенные клиентом креды будут автоматом передаваться браузером с каждым запросом к этому серверу. Запомнить логопас можно в хранилище паролей браузера. Выйти и зайти под другим пользователем можно только закрыв браузер (возможно, в анонимной вкладке, не проверял).

Вариант когда ставится кука с идентификатором сессии
тот самый вариант, когда ты видишь галочку запомнить меня
Клиент сабмитит HTML-форму с логопасом. Сервер, если все ок, генерит идентификатор сессии (должен быть достаточно сложным, чтобы нельзя было подобрать перебором), сохраняет идентификатор в хранилище (куда и как отдельная тема, с идентификатором так же могут храниться доп данные). Сервер отвечает клиенту статусом 302 - перенаправление на страницу отличную от формы аутентификации. В этом же ответе устанавливает куку со значением идентификатора сессии. Теперь браузер при каждом обращении к серверу будет отправлять эту куку, по значению в которой, сервер и будет проверять авторизован пользователь или нет.
Если не задавать время жизни для куки, она будет жить до закрытия браузера. Галочка запомнить меня как раз конвертируется в установку времени жизни сессионной куки.
При выходе сервер удаляет сессионные данные из хранилища и удаляет куку с клиента.

ps
Есть еще варианты с токенами, но оно обычно используются для доступа к API, в случае вебприложений применимо только к SPA.
...
Рейтинг: 0 / 0
18.12.2019, 12:50
    #39904652
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
Kazantsev Alexey
X11
а какая разница, где именно хранить?

В смысле, в куках или в сторе?


да, я не вижу особой разницы
...
Рейтинг: 0 / 0
18.12.2019, 12:53
    #39904658
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
Дегтярев Евгений
kealon(Ruslan)

не вижу смысла делать "свое наподобие"
я тоже не вижу смысла в том что бы вы делали наподобие

больше удивляет откуда взрастают такие заблуждения

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

кука, параметр - вообще не важно, главное идентификатор сессии передать туда-обратно, что бы сервер мог его использовать
для локального хранения есть localStorage

Куки зарезали и все фулстеки вдруг ноют "всё пропало, как мы жить дальше будем" - и я в принципе согласен, с такими знаними только в сторожи идти. В http(s) и без куков слона спрятать можно. Есть куча способов.
...
Рейтинг: 0 / 0
18.12.2019, 12:55
    #39904661
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
X11
да, я не вижу особой разницы

Если вся работа на сервере то куки, если на клиенте то сторедж.
...
Рейтинг: 0 / 0
18.12.2019, 12:55
    #39904663
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация: запомнить логин и пароль
Дегтярев Евгений
Запомнить логопас можно в хранилище паролей браузера.


браузер не предлагает запомнить логин/пароль
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Авторизация: запомнить логин и пароль / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]