Mishin Oleg
Новичок
Система идентификации пользователей
Предлагаю обсудить теорию создания таких систем. Плюсы/минусы, варианты решения проблемы.
В частности, на одном из моих сайтов из-за отсусттвия какой-либо DB использую хранение всей инфы в файлах (здесь без мата - сам умный). Проблемы с файлами хоть и возникали, но все были довольно просто решены.
Осталась следующая проблема: идентификацию сделал следующим образом: получаю от пользователя при регистрации пару логин/пароль, делаю из нее
$ID=crypt($login/$password);
это является дескриптором пользователя, который передается через кукис и в адресной строке (если вдруг кукизы отключены). В файле-списке пользователей храню это значение в виде:
$record_in_file=crypt($ID,$ID);
Это позволяет проверять наличие пользователя по его кукизу, и в то же время не держать паролей на сайте в сколько-нибудь открытом виде.
Возникает проблема: пользователь хочет сменить пароль: я не могу получить его старый пароль/логин из этой записи (вполне логично: одностороннее шифрование).
Соответственно не могу предложить ему хотябы Логин в поле форму. А хранить Логин - значит хранить часть секретной пары в открытом виде.
Вопрос: безопасно ли хранить Логин рядом с $ID, и не повлияет ли это на уровень безопасности сайта?
Предлагаю обсудить теорию создания таких систем. Плюсы/минусы, варианты решения проблемы.
В частности, на одном из моих сайтов из-за отсусттвия какой-либо DB использую хранение всей инфы в файлах (здесь без мата - сам умный). Проблемы с файлами хоть и возникали, но все были довольно просто решены.
Осталась следующая проблема: идентификацию сделал следующим образом: получаю от пользователя при регистрации пару логин/пароль, делаю из нее
$ID=crypt($login/$password);
это является дескриптором пользователя, который передается через кукис и в адресной строке (если вдруг кукизы отключены). В файле-списке пользователей храню это значение в виде:
$record_in_file=crypt($ID,$ID);
Это позволяет проверять наличие пользователя по его кукизу, и в то же время не держать паролей на сайте в сколько-нибудь открытом виде.
Возникает проблема: пользователь хочет сменить пароль: я не могу получить его старый пароль/логин из этой записи (вполне логично: одностороннее шифрование).
Соответственно не могу предложить ему хотябы Логин в поле форму. А хранить Логин - значит хранить часть секретной пары в открытом виде.
Вопрос: безопасно ли хранить Логин рядом с $ID, и не повлияет ли это на уровень безопасности сайта?