| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > нужно ли использовать md5 для хранения пароля? |
| Автор: begin 9.10.2007, 16:03 |
| Пишу админку для сайта, на котором нет регистрации пользователей. Соответственно пользователь будет всего один - админ. Поэтому хочу хранить его логин и пароль не в базе, а непосредственно в скрипте. Сначала хотел там хранить не голый пароль, а его md5-хэш. Но тут на глаза попал конфиг-файл для подключения к базе - там пароль лежит в обычном виде. Насколько я понимаю, инклюдить файл с другого сервера будет проблематично по следующим причинам: 1. никто не знает название конфиг-файла и путь к нему 2. в этом файле может быть проверка константы, имя которой опять же неизвестно. В свете этого, два вопроса: можно ли хранить пароль админа прямо в скрипте или в подлючаемом скрипте, в которых происходит аутентификация при входе в админку? можно ли не использовать шифрование пароля? |
| Автор: Fally 9.10.2007, 16:14 | ||
Лежит то он зашифрованный, но варинтов прочесть его нету + редко на каком сервере к БД открыт доступ к БД из инета. Ответы: 1) Нет, не стоит. Со временем, вдруг админов станет несколько? Для хранения используй БД. 2) Можно, если тебе плевать на безопасность своего сайта. Шифрование _желательно_ использовать всегда. P.S. Не выделяйте вопросы красным цветом, о том что это вопрос говорит и вопросительный знак. |
| Автор: begin 9.10.2007, 16:35 | ||
Я имел ввиду, что незашифрованным лежит ПАРОЛЬ для подключения к базе. Ведь обычно все параметры подключения к базе хранятся в пхп-файле, который просто инклюдится остальными скриптами. А шифровать его нельзя - ведь для подлкючения к базе в функции mysql_connect($db_server, $db_user, $db_pas) нужно указать пароль в нормальном виде. Пароль и логин к базе ведь тоже очень важны? С ними ведь можно натворить бед не меньше, чем с доступом к админке сайта? Так если уж их приходится ложить открытыми, то почему нельзя положить открытым и пароль админки? Мне не лень использовать шифрование, я просто пытаюсь понять с вашей помощью, действительно ли оно нужно.. P.S. Админ однозначно будет всегда один! |
| Автор: Fally 9.10.2007, 16:55 |
| То, что пароль к БД лежит в не зашифрованном виде, ещё ничего не значит, т.к.: 1) чтоб его увидеть надо вывести переменную его хранящую на экран. Для этого надо скрипт редактировать. 2) Я не видел серверов к БД, в которых была бы открыта возможность подключаться к серверу из интернета я не видел. Подключение по локальной сети ещё возможно или с определённых IP, но такого, чтобы любой желающий мог подключиться к серверу, я ещё не видел. И вообще, ознакомьтесь с документацией и книгами, там всё прекрасно расписано + есть яндекс и гугл. |
| Автор: chin 9.10.2007, 17:22 |
| Если злоумышленник каким-то образом прочитает содержимое конфигурационного файла с паролем администратора закриптованного в md5, он никак не сможет им воспользоваться. А открытым паролем к БД он не сможет воспользоваться по причине, изложенной Fally. |
| Автор: begin 9.10.2007, 17:42 | ||||
| Вот теперь я понял всю важность шифрования пароля. Но возникла маленькая проблемка с генерацией пароля: есть скрипт, где в поле я ввожу пароль:
и есть скрипт, выводящий для него хэш:
Так вот сколько я не перебробовал паролей и сколько раз я ни обновлял страницу в браузере, всегда выводится один и тот же хэш Чувствую, где то напортачил.. Не пойму где? |
| Автор: SelenIT 9.10.2007, 18:00 |
Не такой случайно: d41d8cd98f00b204e9800998ecf8427e? ;) begin, а просто $_POST['pass'] что выводит? Возможно, где-то просто досадная опечатка. Ну и маловероятно, но все же... какая версия PHP? |
| Автор: begin 9.10.2007, 19:41 | ||||
| console: md5.php
selenit:
версия php: 4.4.7 версия моей внимательности: крайне низка уже нашел опечатку. зря отнял время |