Я пишу систему входа для сайта, который я создаю.
Вот суть того, как я внедряю систему входа в систему:
У меня есть две таблицы: пользователи и сеансы.
users: uid | uname | pass
sessions: sid | uid | ts | ts_expires
Таким образом, пользователь вводит комбинацию uname/pass.
- Если комбинация неверна, я перенаправляюсь на страницу "плохой авторизации".
- если комбинация правильная, I:
- генерирует случайный sessionid (
sid
) - вставьте запись в
sessions
, связывая этот sid с uid от имени пользователя. - установите cookie с именем
sid
со значением случайногоsid
, только что вставленного вsessions
.
- генерирует случайный sessionid (
На каждой странице, которая требуется для входа пользователя в систему, я проверяю:
- установлен ли файл cookie
- если sid действителен
Итак, мои вопросы:
- Какие могут быть проблемы с этим механизмом?
- Как должна быть реализована хорошая система входа?
PS: Я еще не пользуюсь защищенным паролем. Так что это единственная проблема, которую я сейчас вижу. И о, я использую php и mysql, если это актуально.
EDIT: я храню пароли не в обычном тексте, а как MD5 имени пользователя, связанного с паролем.
Итак, pass = MD5($uname.$pass)
, так сказать.