Заголовок сообщения: MySql ограничение доступа если пароль в базе. Добавлено: 25 Август 2004, 22:05:41
Зравствуйте. Сейчас передо мной стоит задача разработать
1) базу данных в которой содержится информация о клиенте с полями
имя, место работы, логин, пароль и т. д.
2) форму (логин, пароль), через которую он будет получать доступ к определенным страницАМ на сайте.
Базу я сделал, форму тоже сделал. Прочитал, что можно ограничить доступ посредством .htaccess, но дело в том, что пароли тогда требуется хранить в специальном файле, а не базе.
Вопрос.
1) Правильно ли я делаю, что храню пароли в базе данных (нужно ли их там шифровать?)
2) Возможно ли как то решить мою задачу, но чтобы пара логин-пароль бралась не с файла с прописанным путем, а из базы?
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 26 Август 2004, 10:21:00
OutsideR, храня данные о пользователе в базе можно построить гибкую систему разграничения доступа (http://www.citforum.ru/programming/digest/access.shtml). в принципе можно построить управление доступом на базе апача, но это решение более сложное. шифровать пароли или нет - зависит от того - нужно ли востанавливать пароль. если можно (по условиям задачи) его менять не востанавливая - можно хранить и в базе в зашифрованном виде.
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Хранить в базе пароли plain-text или хеши паролей - лучше хеши. Это правильней с точки зрения безопасности. Минус (повторю слова Long) - невозможность восстановить пароль, его можно только сменить.
Из второго пункта твого сообщения вытекает, что нужно систему аутентификации...
Вариантов несколько.
Вариант 1. Пользовать аутентификацию Апача - вот эти файлики .htaccess.
Плюсы:
- минимум программинга для небольшого кол-ва пользователей. Т.е. берёшь, и ручками каждого пользователя записываешь в ентот файлик.
Минусы:
- если предполагается, что пользователей будет очень много, пользователям будут назначены разные права (т.е., например, одному можно сюда идти, а другому нет, зато этому другому можно туда, куда первому нельзя, а оба вместе они могут бродить по третим страницам, которые незарегистрированным пользователям недоступны), пользователь может менять пароль сам - тут потребуется программинг достаточно сложный, да и поддерживать кучу файликов в разных директориях достаточно геморройно.
- Ели не ошибаюсь, то данная функционалдьность есть только в Апаче, т.е. на других серверах она работать не будет.
Вариант 2:
Сделать собственную систему аутентификации. Тут плюсы и минусы меняются местами, т.е. делать изначально сложней, но возможностей больше. Программинг тут нужен изначально.
Правильно ли я делаю, что храню пароли в базе данных
правильно
Цитата:
нужно ли их там шифровать?
нужно
Цитата:
Возможно ли как то решить мою задачу, но чтобы пара логин-пароль бралась не с файла с прописанным путем, а из базы?
Возможно. этим занимается модуль Апача mod_auth_mysql, если он поддерживается у твоего провайдера
Надо заметить, что когда парольная защита делается средствами .htaccess, то своя форма для ввода пароля тебе не пригодится.
Свою форму ты можешь использовать с помощтю авторизации куками или сессиями.
Но в этом случае ты должен понимать, что с их помощью ты можешь сделать парольный доступ только к скриптам, но не к другим файлам - таким, как картинки или хтмл.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 7 Сентябрь 2004, 15:50:17
Цитата:
Но в этом случае ты должен понимать, что с их помощью ты можешь сделать парольный доступ только к скриптам, но не к другим файлам - таким, как картинки или хтмл.
не правда твоя - выносишь все что нужно охранять выше корневой директории и выдаешь нужному пользователю скриптом.
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.