хранение паролей в текстовом файле

  • Автор темы Автор темы ayrat9
  • Дата начала Дата начала

ayrat9

Новичок
хранение паролей в текстовом файле

Сейчас реализуется доступ к части контента сайта через логин/пароль. Выбрал вариант, при котором пароль будет храниться в базе в зашифрованном виде(черех md5()). При такой схеме восстанавление забытого пользователем пароля довольно проблематично реализовать.

Если в момент регистрации пользователя в какой-нибудь текстовый файл (хранимый за пределами корня сайта, или в закрытой админской папке) класть строку:
-------------------------------------------
пароль~~зашифрованный пароль
-------------------------------------------
то является ли такой способ восстановления пароля безопасным (в плане его перехвата посторонними людьми) решением?
 
При такой схеме восстанавление забытого пользователем пароля довольно проблематично реализовать.
но все таки возможно ? :)))))))))

ayrat9 есть лучше решение. Пароль не восстанавливать, а генерировать новый и высылать его пользователю на e-mail. Так же желательна возможность смены пароля пользователем и проблема будет решена.
 
Самая лучшая схема, rotoZOOM. Только есть минус - многим (проверено на собственном примере) простым юзверям, непрограммистам несколько шагов по возврату забытого пароля в VBulletin практически не удаются без разжевывания. ;(
 
Автор оригинала: HEm
Самая лучшая схема, rotoZOOM. (
Чья схема? rotoZOOM'a?

Ну так что? Никто мне не расскажет про недостатки такого способа восстановления старого пароля?
 
HEm это минус не только этой схемы, так же и с восстановлением пароля. Особенно по вопросам, которые пользователи наверняка забыли ..нцать месяцев назад.

ayrat9 Ну во-первых, необходимо будет реализовать блокировку одновременного доступа к файлу по записи. Во-вторых, все равно придется писать алгоритмы поиска по файлу, обновлению информации и т.д.
В-третьих, зачем это нужно ? Файлы БД тоже наверняка лежат за пределами корня сайта :)) и она (БД) с этой задачей справится лучше чем ты.
 
Автор оригинала: rotoZOOM
HEm это минус не только этой схемы, так же и с восстановлением пароля. Особенно по вопросам, которые пользователи наверняка забыли ..нцать месяцев назад.

ayrat9 Ну во-первых, необходимо будет реализовать блокировку одновременного доступа к файлу по записи. Во-вторых, все равно придется писать алгоритмы поиска по файлу, обновлению информации и т.д.
В-третьих, зачем это нужно ? Файлы БД тоже наверняка лежат за пределами корня сайта :)) и она (БД) с этой задачей справится лучше чем ты.
первое и второе для меня не проблема - совершенно точно
а насчет третьего: почему же тогда пароли хранят в БД в зашифрованном виде?
 
чтобы получивший доступ к БД злой хацкер не смог бы на сайте регистрится под именами других пользователей.
Во-вторых, получив доступ к БД он конечно все равно многое, что сможет и данные покорябать и "беспорядок" навести, но ведь еще у многих пользователей эти пароли используются еще где-то, не только на этом сайте. Значит теперь зная имя и пароль злоумышленник попробует под ними регистрится на других сайтах.
Наверняка есть еще причины ...
Допустим ты хранишь пароли в файле, то какая разница, если хакер влезет в систему он и файл твой прекрасно посмотрит.
 
то есть, если я тебя правильно понял, злоумышленник, вскрывший MySQL сервер, однозначно вскроет и любую мою папку/файл на этом сервере (при условии, что mysql -> localhost)? И хранить незашифррованные пароли где бы то ни было на сервере совершенно бесполезное и опасное занятие?
 
если я тебя правильно понял, злоумышленник, вскрывший MySQL сервер, однозначно вскроет и любую мою папку/файл на этом сервере (при условии, что mysql -> localhost)?
неправильно
речь идет о том, что вероятность взлома твоей базы ~ вероятности взлома доступа к твоему файлу
 
а как же тогда реализуются системы восстановления пароля (не генерация нового, ни его смена) в современных СMS?
 
на сколько я понял,
если взлоумышленник взломает сервак, то ему одинаково просто иметь доступ как к файлу с паролями, так и к БД, где пароли хранятся.

Опять же возвращаясь к пережеванному топику (http://phpclub.ru/talk/showthread.php?s=&threadid=60402&highlight=md5), что хранение пароля по MD5, не является 100% надежной вещью

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

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

в твоем случае предпалогается, что ключ должен храниться где-то на севере, следовательно злоумышленнику одинаково что легко взять ключь и расшифровать, что взять просто из БД

следовательно, если хочешь надежную систему, то ключи должны храниться на др. сервере. Но, судя по топику, тебе это не надо.

-~{}~ 11.03.05 17:59:

возвращаясь к нашим слонам:
то является ли такой способ восстановления пароля безопасным (в плане его перехвата посторонними людьми) решением
вероятность достать такой файл одинакова вероятности залезть в БД и взять от туда просто незашифрованные пароли.
или доступ к таблице: password ~~ hash
 
вообще-то я задумывал хранить в БД только сочетания (в упрощенном виде):
-----------------------------------------
логин | зашифрованный пароль
-----------------------------------------

а в закрытом текстовом файле строку
----------------------------------------
пароль | зашифрованный пароль
----------------------------------------

использоваться он (т.файл) должен был только админом для восстановления забытого пароля по запросу пользователя

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