| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Авторизация без MySQL |
| Автор: Jey_k 21.9.2005, 13:54 |
| Хотелось бы примерчик рассмотреть. Особенно что касается безопасности. |
| Автор: -=Ustas=- 21.9.2005, 14:03 |
| Тоже самое что и с БД, только в файле. Т.е. получаем строки из файла с логином и паролем, и сверяем с введеными данными, если всё пучком, то регистрируем переменные сессии. При сохранении паролья md5-хеш обязателен. |
| Автор: PARROT 21.9.2005, 17:43 |
| Есть примерчик, но без безопасности, ее нужно дописывать. Нужен? |
| Автор: Anarki 21.9.2005, 19:42 |
| А о безопасности можно много говорить 1. Если хостер правильно выставил права, что у каждого юзера скрипт запускается под своим (uid), то просто выставлять правильные права на файл. Скажем, rw------- (600) - только чтение пользователем-владельцем, то есть никто другой не сможет прочитать файл, не знаю насколько поможет и будет работать ли у хостеров, но можно попробовать. 2. Закинуть в папку .htaccess и запретить доступ через HTTP на этот файл. 3. Следующее - шифровать все пароли, хранящиеся в файле, скажем алгоритмом md5, а затем пришедший от пользователя пароль хешировать и сравнивать хеши. Шифрование обязательно в любом случае, это предотвращает в какой-то мере хищение важной информации - паролей. |
| Автор: maugli 21.9.2005, 20:00 |
| А обязательно ли хешировать пароли (если БД исплоьзуешь)? И скажите зачем вообще хешировать, как их украсть можно вооще? И если кто может, то дайте пожалуйста какой-нить мануал по безопасности веб-приложений. Заранее спасибо!!! |
| Автор: PARROT 21.9.2005, 20:00 |
| maugli http://forum.vingrad.ru/index.php?showtopic=38887 |
| Автор: Jey_k 21.9.2005, 21:00 | ||
Хотелось бы глянуть? |
| Автор: AntonioBanderaz 21.9.2005, 21:07 |
| Ну можно сделать отдельный файл, с именем как у юзера, в котором хранится пароль этого юзера. Права доступа, только для root'а при открытии они меняются на 0777, производится чтение и снова для root'а. |
| Автор: Mal Hack 21.9.2005, 21:29 |
| Jey_k вот тебе пример с БД: http://vingrad.ru/PHP-ART-002849 тут правда есть пара недочетов... 1. mysql_real_escape_string нужен 2. BINARY при сравнении. Что касается файла... Тут очень важно ограничить доступ к файлу на уровне сервера. Идеальный вариант - вынести его выше DocumentRoot, правда, туда и PHP должен добираться. |
| Автор: PARROT 21.9.2005, 21:38 | ||
| Писала еще на курсах, но вроде работает. Удаление тоже имеется, если что.
|
| Автор: Jey_k 21.9.2005, 22:05 |
| PARROT C регистрацией понятно, спасибо за интересный пример. Мне интересно как грамотно обеспечить доступ к определенной странице через логин/пароль. Например есть страница admin_page.php нужно чтобы она загружалась только при правильном вводе, например, на странице adm_auth.php. Особенно чтоб это было безопасно, при условии пользования файлом. |
| Автор: AntonioBanderaz 21.9.2005, 22:13 | ||
можно и с базой сделать так, что не безопастно будет.. Храни и пароль в MD5, логин тоже можешь запихнуть под это дело. А потом делай выборку файла имя файла будет допустим - md5($username).$ext и дальше проверяй если его содержание будет совподать с md5($userPass) - то регистрируется переменная сессии, и передаётся её индетификатор пользователю. Права только для чтения поставь. |
| Автор: Mal Hack 21.9.2005, 22:21 | ||
Почитай тут в поиске. в md5 не безопасно уже хранить. |
| Автор: AntonioBanderaz 21.9.2005, 22:30 |
| Уже ломанули всё-таки.... ну тогда - mcrypt_ecb(MCRYPT_BLOWFISH,"некий ключ","некая строка",MCRYPT_ENCRYPT); для расшифровки MCRYPT_DECRYPT. 448 бит или для однонаправленного mhash(MHASH_RIPEMD160,"некая строка"); 160 битный хеш. |
| Автор: PARROT 22.9.2005, 08:41 | ||
Ну это уже следующая стадия. Пиши так, что если логин и md5(пароль) существует, записываем данные пользователя в куки и пускаем на страницу. |
| Автор: Jey_k 22.9.2005, 11:11 |
| Ой, столько вариантов... Если бы я еще понял хоть процентов 40% Может покажет кто тревиальный примерчик если время есть? Буду благодарен. Старому дельфисту непросто на php перебираться |
| Автор: PARROT 22.9.2005, 12:37 | ||
| Jey_k, я уже пишу. Ну Воть:
|