powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вопрос по хранению логина и пароля /активного соединения с сервером
14 сообщений из 14, страница 1 из 1
вопрос по хранению логина и пароля /активного соединения с сервером
    #39231659
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Возник вопрос , связанный с правильной организацией логина и пароля на момент открытой текущей сессии, либо активного соединения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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


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