Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вопрос по хранению логина и пароля /активного соединения с сервером / 14 сообщений из 14, страница 1 из 1
09.05.2016, 00:09
    #39231659
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
Привет всем!
Возник вопрос , связанный с правильной организацией логина и пароля на момент открытой текущей сессии, либо активного соединения.

Ранее много лет занимался базостроением на десктопных приложениях, VBA. Сохранить значения логина и пароля было очень просто-
передать логин и пароль в глобальную переменную и доставать их оттуда на весь период открытого проекта /открытой программы. СУБД были написаны на Access и скомпилированы, поэтому дернуть со стороны значения логина и пароля практически невозможно, так как прямого доступа к модулям и все что в них зашифровано по очевидной причине не было.

Сейчас активно изучаю то же самое базостроение, но уже с использованием js,php,mysql.

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

Как и где еще можно хранить /задавать логин и пароль к своей базе данных более безопасно, чтобы в куках ничего не было, но чтобы на весь период работы человека с проектом данные соединения/логина/пароля сохранялись? Вопрос интересует в разрезе возможностей PHP в связке с сервером MySQL. Про глобальные переменные и сессии в PHP прочитал, пока бегло. Хочу спросить, как правильно?
...
Рейтинг: 0 / 0
09.05.2016, 00:15
    #39231662
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
В сессии, например.
...
Рейтинг: 0 / 0
09.05.2016, 00:52
    #39231670
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
Сергей Лалов,

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

Пароль вводится в прямом виде только при авторизации, сервер вычисляет его хеш и сравнивает с хранящимися в БД.
Далее создаётся сессионный хеш (самый надёжный - с привязкой к IP, чтобы кража кук была бесполезной).

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

При смене пароля создаётся новый хеш, но сам пароль серверу неизвестен (и не нужен).

Как-то так...
...
Рейтинг: 0 / 0
09.05.2016, 01:20
    #39231673
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
бухалтер фантоцци,

А как потом этим хешем авторизоваться на СУБД?
...
Рейтинг: 0 / 0
09.05.2016, 01:27
    #39231674
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
vkleбухалтер фантоцци,

А как потом этим хешем авторизоваться на СУБД?
я в СУБД храню хеши паролей плюс сессионные хеши (2 поля),
когда происходит авторизация, в поле для сессионного хеша пишется созданный сессионный хеш,
потом при каждом запросе по индексу он ищется, берётся ID, хеш пароля, текущий IP и прочие данные запроса,
опять вычисляется сессионный хеш и сравнивается с записанным, если совпадает, то всё ОК.
...
Рейтинг: 0 / 0
09.05.2016, 01:36
    #39231675
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
P.S. у этого способа есть дополнительная особенность (это может быть как плюс, так и минус, смотря с какой стороны посмотреть),
при новой авторизации старый хеш сессии слетает, поэтому работа возможна только с того устройства, которое было авторизовано последним,
ну и при смене динамического IP тоже хеш слетает (хотя у меня бывает динамичный IP не меняется 1-2 месяца, пока принудительно роутер не перезагрузишь).
...
Рейтинг: 0 / 0
09.05.2016, 01:47
    #39231676
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
2 способ - если пользователей немного (скажем не более сотни).

Здесь можно вообще без БД обойтись, но пароли хранятся в исходном незашифрованном виде в массиве.
При авторизации создаётся хеш, потом при каждом запросе цикл по всему массиву с вычислениеми хеша по паролю, если совпал с присланным в запросе - то всё ОК.
...
Рейтинг: 0 / 0
09.05.2016, 01:56
    #39231677
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
У 2 способа (пароли хранятся в массиве) есть недостаток (который может быть и плюсом):
пользователь (сотрудник организации) не может сменить свой пароль, это делает адимнистратор.
...
Рейтинг: 0 / 0
09.05.2016, 02:06
    #39231678
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
Добавлю ещё о дополнительной защите, если она требуется.

Недавно поставил закрытый форум для организации, была задача скрыть форум (даже его главную страницу).
С форумом работают и будут работать сотрудники филиалов компании. Филиалов немного (не более 100).

Для захода на любую страницу форума требуется предварительная авторизация по коду (паролю) филиала компании.
Эти коды (пароли) филиалов хранятся как раз в массиве, всё это дело работает через include созданного специально для этого php-файла.
При несовпадении хеша ни с одним из вычисленных по массиву, выводится страница авторизации, иначе упарвление передаётся на движок форума.
...
Рейтинг: 0 / 0
09.05.2016, 15:08
    #39231822
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
бухалтер фантоцциvkleбухалтер фантоцци,

А как потом этим хешем авторизоваться на СУБД?
я в СУБД храню хеши паролей плюс сессионные хеши (2 поля),
когда происходит авторизация, в поле для сессионного хеша пишется созданный сессионный хеш,
потом при каждом запросе по индексу он ищется, берётся ID, хеш пароля, текущий IP и прочие данные запроса,
опять вычисляется сессионный хеш и сравнивается с записанным, если совпадает, то всё ОК.Круто, конечно. Однако, ТС спрашивал, где/как хранить логин и пароль от СУБД, которые введены в форме. Ваш же вариант предусматривает получение логина и пароля... А Вы скромно умолчали, откуда Вы его берёте, чтоб затем передать мускулю. :)

Исходный вопрос совсем о другом:
Сергей ЛаловКак и где еще можно хранить /задавать логин и пароль к своей базе данных
...
Рейтинг: 0 / 0
09.05.2016, 18:55
    #39231911
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
vkleОднако, ТС спрашивал, где/как хранить логин и пароль от СУБД, которые введены в форме. Ваш же вариант предусматривает получение логина и пароля... А Вы скромно умолчали, откуда Вы его берёте, чтоб затем передать мускулю. :)

Исходный вопрос совсем о другом:
Сергей ЛаловКак и где еще можно хранить /задавать логин и пароль к своей базе данных
Откуда беру логин-пароль?
Из формы конечно, и в случае регистрации или смены пароля, и в случае авторизации.
Но дополнительно я рассказал о варианте № 2, который предусматривает только ввод уже существующего пароля (который создаёт администратор).

Можно обойтись и без кук, используя хеш в строке URL (имхо это плохой способ, лично я его не одобряю).
Если SPA-приложение, то можно после авторизации полученный хеш хранить так-же в переменной или в localStorage.

И я понял исходный вопрос совсем по-другому - сомнение в надёжности кук.
Сергей ЛаловВопрос такой, есть к примеру входная форма ,страница, на которой я ввожу логин и пароль. Ввожу один раз, но пользуюсь во время всего сеанса работы моей веб базы. В куках браузера с последующим обращением туда я не хочу хранить данные логина и пароля. даже зашифрованный пароль я смог расшифровать на специализированном сайте.
...
Рейтинг: 0 / 0
09.05.2016, 19:50
    #39231938
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
vkleбухалтер фантоцци,

А как потом этим хешем авторизоваться на СУБД?кажись, дошло, про что Вы спрашивали :)
если клиенту нужно вводить логин-пароль самой СУБД, то однозначно я-бы такое запретил,
в лучшем случае клиент должен знать условное имя или идентификатор СУБД и с ним работать,
реальный логин-пароль должен знать только сервер.
...
Рейтинг: 0 / 0
10.05.2016, 02:19
    #39232016
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
бухалтер фантоцциесли клиенту нужно вводить логин-пароль самой СУБД, то однозначно я-бы такое запретил,
Однако, пыхмайадмин, дампер, админер и еще куча подобного прекрасно работают именно в таком режиме.



бухалтер фантоццив лучшем случае клиент должен знать условное имя или идентификатор СУБД и с ним работать,
реальный логин-пароль должен знать только сервер.Идея хорошая, да к ней дополнительная БД (или таблица БД) напрашивается. + актуализация этой БД или таблицы по каждому чиху.
...
Рейтинг: 0 / 0
10.05.2016, 22:17
    #39232879
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по хранению логина и пароля /активного соединения с сервером
vkle,

Вы правы конечно, если использовать https, проблем быть не должно.
Можно считать, что приведённые мной выше способы я рекомендую для незащищённого соединения,
у меня так вообще и на запись данных работает дополнительный хеш при каждой смене или перезагрузке страницы, неохота свои велосипеды тут расписывать :)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вопрос по хранению логина и пароля /активного соединения с сервером / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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