Стоит ли хранить пароли, используя php serialize вместо базы данных? - PullRequest
1 голос
/ 18 января 2012

Я редактирую веб-страницы напрямую, используя ajax и php с простым html dom. Я не вижу смысла в использовании базы данных, когда я могу обойтись без. Тем не менее, мои руки замерзают от испуга, когда я думаю о сохранении пароля администратора для приложения на веб-сервере с использованием serialize, даже если он выше htdocs, он зашифрован и я использую сценарий против перебора.

Я не хочу использовать базу данных только для одного пароля, но достаточно ли она безопасна?

Я с нетерпением жду ваших мыслей ...

Ответы [ 5 ]

3 голосов
/ 18 января 2012

Файл с правильными разрешениями chmod в этом случае так же безопасен, как и хранилище базы данных.

Подумайте об этом: база данных mysql фактически хранится в двоичных файлах в файловой системе вашего сервера.Если злонамеренный пользователь получает доступ к вашему серверу, он имеет такой же доступ к двоичным файлам базы данных, как и любой другой файл, включая ваши сериализованные и зашифрованные данные в текстовом файле.в общедоступном каталоге через веб-сервер он не менее безопасен.Конечно, если кто-то получит root-доступ, вы в любом случае будете foobar'ом.

Что вы должны никогда делать, это хранить пароли в открытом виде.md5() все в порядке.sha1() теперь стал лучшим вариантом для шифрования данных этого типа.

2 голосов
/ 18 января 2012

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

1 голос
/ 18 января 2012

Пока вы не храните пароль в виде простого текста в файле, я не вижу проблемы с сохранением хэша пароля в реальном файле php.

Пример использования SHA1:

if(sha1($_POST['password']) == "8cb2237d0679ca88db6464eac60da96345513964") {
    //success
} else {
    //failure
}
1 голос
/ 18 января 2012

Если этот логин есть и будет только для вас, ваш пароль будет проще хранить в вашем коде / файле. Но вы должны зашифровать свой пароль, чтобы хакеры не могли прочитать этот файл и войти в систему. Пожалуйста, не забывайте правильные chmods в файле;)

0 голосов
/ 18 января 2012

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

...