Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > кодирование пароля |
Автор: Zzet 10.7.2009, 12:43 |
Здравствуйте! может подскажите как закодировать пароль в административной части сайта? ![]() ![]() |
Автор: underW 10.7.2009, 12:46 |
md5 |
Автор: MoLeX 10.7.2009, 13:22 |
underW, с помощью md5() мы не закодируем, а зашифрует пароль. Zzet, если тебе точно надо закодировать то к твоим услугам base64_encode() Добавлено через 38 секунд P.S. предпочтительней хэшировать |
Автор: Zzet 10.7.2009, 13:26 |
а какая разница между шифрованием и кодированием? я использую пароль для входа в административную часть, что использовать? |
Автор: underW 10.7.2009, 13:35 |
я вот недавно читал в книге "PHP5 и MySQL. Библия пользователя" Глава44. Аутентификация пользователей... так там md5. |
Автор: MoLeX 10.7.2009, 13:51 |
1. ф-ция md5() - ты получишь хэш который тебе не расшифровать, можно только подобрать 2. ф-ция base64_encode() - получишь закодированную строку которая декодируется с помощью base64_decode() Теперь смотрим ситуацию: в результате твоей ошибки в скрипте есть sql-уязвимость. Плохой человек находит её и получает пару логин:пароль. В дальнейшем события развиваются двумя способами 1. при использование md5() он начинает судорожно подбирать пароль Вполне вероятно, что в базе хэшей присутствует такой же хэш - значит этот плохой человек получит исходный пароль. Чтобы этого не случилось надо при хэширование добавить соль - тут же перевод строки - md5("\n".$pass) 2. при использование base64_encode() он воспользуется base64_decode() и получит твой пасс и соотвественно доступ в админпанель Добавлено через 3 минуты и 20 секунд P.S. http://insidepro.com/hashes.php |
Автор: Ипатьев 10.7.2009, 14:30 |
Перед тем, как задавать вопрос "как", сначала надо ответить на вопрос "зачем". Зачем кодировать пароль административной части? |
Автор: Zzet 10.7.2009, 15:23 | ||
я выкладываю сайт на хостинге. в пользовательской части есть информация заказчика. в административной оператор со стороны заказчика вносит изменения, для того, чтобы войти в адм часть оператору, а не бухгалтеру, к примеру, нужен пароль. или я что-то не так понимаю. тогда подскажите, пожалуйста как это пооперационно должно работать |
Автор: Ипатьев 10.7.2009, 15:39 |
Записываешь пароль в базу данных или в файл. |
Автор: Zzet 10.7.2009, 16:03 | ||||
не могу понять механизм.разбираю пример с паролем. записан пароль в файл connect.inc.php
как сформирован этот пароль. не могу догнать. операции выполняются в коде
как сформирован этот пароль. не могу догнать? |
Автор: Ипатьев 10.7.2009, 16:13 |
Автор: Zzet 10.7.2009, 16:18 | ||
что я ввожу в форме. как его задать , чтобы код сравнивал с ('ADMIN_LOGIN', 'YWRtaW4='), ('ADMIN_PASS', '7215ee9c7d9dc229d2921a40e899ec5f')? |
Автор: Ипатьев 10.7.2009, 16:21 |
это знает только тот, кто писал код |
Автор: Zzet 10.7.2009, 16:23 |
запускаю код и выходит что можно зайти на страницу и без пароля Добавлено через 1 минуту и 27 секунд как задать свой логин и пароль |
Автор: lelik133 10.7.2009, 16:29 |
при запросе страницы выдавать форму запроса логина/пароля, потом сравнивать их с правильными, определенными define`ами как у вас или хранящимися в базе |
Автор: Zzet 10.7.2009, 17:31 |
хорошо. генерирую свой логин и паролью. допустим логин zvezda пароль 111. кодирую логин хеширую пароль изменяю значения в файле connect.inc.php соответствующие логину и паролю по нажатию кнопки в форме ввожу свой логин и пароль. получаю ошибку логина/пароля. в чем дело. что делаю не так? |
Автор: Ипатьев 10.7.2009, 17:37 |
- кодирую логин - хеширую пароль - изменяю значения в файле connect.inc.php - по нажатию кнопки в форме ввожу свой логин и пароль. любое из вышеперечисленных действий. плюс ошибки могут быть в коде и на сервере. Скажи, ты в состоянии написать код, который просто проверяет логин и пироль безо всякого хэширования и кодирования? |
Автор: Zzet 10.7.2009, 17:49 | ||||||||
да
в connec1t.inc.php
работает, только с проблемы с header header("Location: index2.php"); говорит Cannot modify header information - headers already sent by но сейчас архиважно кодир и хешир Добавлено через 1 минуту и 27 секунд да
в connec1t.inc.php
работает, только с проблемы с header header("Location: index2.php"); говорит Cannot modify header information - headers already sent by но сейчас архиважно кодир и хешир Добавлено через 3 минуты и 6 секунд в коде connec1t.inc.php в комментарии не administrator's login, а administrator's pass Добавлено через 5 минут и 24 секунды в коде connec1t.inc.php в комментарии не administrator's login, а administrator's pass |
Автор: patap 10.7.2009, 17:59 |
на счет header: перед хидером не должно быть ни какого вывода в браузер |
Автор: Zzet 10.7.2009, 18:07 | ||
patap , без вывода в браузер тоже не работает. если имелось ввиду только
выдает ту же ошибку |
Автор: patap 10.7.2009, 18:11 |
ну может там еще что-то есть... допусти в сам начале страницы перед <?php стоит перевод строки или пробел, или если файл сохранен в UTF-8, то возможно в начале файла дописана метка BOM (3 байта вроде). она тоже считается выводом |
Автор: Ипатьев 10.7.2009, 18:22 |
сделай echo md5(ADMIN_PASS); |
Автор: Zzet 10.7.2009, 18:27 |
patap, спасибки, у меня как раз /n стоял. ![]() что делать с кодированием, хешированием непонятно ![]() Добавлено через 10 минут и 56 секунд получил 698d51a19d8a121ce581499d7b701668. подставил в файл. теперь работает. было также но не работало. вожможно причина была в md5("\n".ADMIN_PASS). спасибо, танцую от счастья ![]() |
Автор: ZTI831 11.7.2009, 15:49 |
я делаю так: $pass = "asdfghj23"; $result = md5 (md5 ("k4sngh235578i8o".$pass) ); Можно ли еще как нибдуь усложнить мой скрипт? |
Автор: Ипатьев 11.7.2009, 19:08 |
зачем? |
Автор: ZTI831 11.7.2009, 20:04 |
Для усложнения подбора. |
Автор: Ипатьев 11.7.2009, 20:18 |
А сейчас он недостаточно сложен? |
Автор: ZTI831 11.7.2009, 20:37 |
сложен, но я подумал можно еще как нибудь усложнить, вот вас и спросил |
Автор: Ипатьев 11.7.2009, 20:57 |
Глупо ставить железную дверь на сарай из картона. Я думаю, к тебе на сайт можно попасть с помощью десятков разнообразнейших уязвимостей. Не прибегая ни к какому паролю. И я рекомендую тебе заняться именно ими, а не увеличением времени подборя пароля с тысячи до миллиона лет. |
Автор: Staind 12.7.2009, 00:25 |
2ZTI831, хешировать хеш бесполезно. Я делаю sha1(md5($string)) - хотя считаю это тоже излишеством. |
Автор: Nirvana77 13.7.2009, 01:04 | ||
Мужики живите спокойно ![]()
|
Автор: Ипатьев 13.7.2009, 07:41 |
Хороший пример комментария не в тему. |
Автор: bazzjr 13.7.2009, 16:55 |
Читаю и медленно ахреневаю над тем как умы поворачиваются извратится над хэшированием пароля ![]() Апсолютно согласен с Ипатьев, когда он говорил что кроме пароля существует еще тысяча других дыр ![]() Так что не теряйте время на изобретение велосипеда в хэшированием пароля! |