Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Сеть > Правильная авторизация на сайте |
Автор: serieznyi 30.8.2012, 20:38 | ||
Пишу сайт. Возникла необходимость реализовать авторизацию. Механизм авторизации который использую в данный момент:
и соответственно проверка на то что пользователь авторизован происходит по наличию $_SESSION['id']. Так как большая часть примеров которые я нашел в сети используют хранение пароля в COKKIE я решил уточнить некоторые вопросы здесь. 1) Как реализовать "Запомнить меня"? Как я понимаю пароль хранить в куках для таких целей не логично. Возможно нужно писать в куки $_COOKIE['rememberMe'] и идентификатор пользователя и логин. И в случае isset($_COOKIE['rememberMe']) писать id и login в $_SESSION, что и авторизует пользователя. Но в таком случае меня смущает факт того что идентификатором входа является ID, который как правило число 0 - N. По крайней мере у меня так. Меня смущает безопасность. Я так полагаю что при данном механизме авторизации я смогу поправить кукис изменив в нем сохраненный $_COKKIE['id'] и авторизоваться под любым пользователем. Быть может в место ID в виде числа хранить какой-то хеш который генерируется из ID пользователя и его логина. Смотрел что хранить vk.com в свои куках. У них там три ID и все они набор символов, что собственно и натолкнуло меня на мысли которые я описал выше. Прошу подсказать как правильно реализовать данный момент авторизации или дать ссылку на нужную статью. |
Автор: enoff 30.8.2012, 22:04 | ||||
http://www.phpfaq.ru/slashes Генерируется случайная строка, например $hash = md5($user_id . rand(0, 1000) . SALT), в базу записывается пара $user_id, $hash. В куки, соответственно, тоже. Далее примерно такие действия:
|
Автор: serieznyi 30.8.2012, 22:28 |
Благодарю. Но буквально несколько часов назад наткнулся на статью про Web Framework и теперь подумываю перебраться на какой нибуть из них. Видимо это решит некоторые мои проблемы. |
Автор: enoff 31.8.2012, 13:10 |
Могу посоветовать yii. Не такой монструозный, как zend, более легкий в освоении. Не то, что решит некоторые проблемы, а вообще переведет разработку на другой уровень, задает архитектуру приложения и направление разработки, предоставляет огромное количество инструментов и плюшек. Перечислять можно бесконечно. Вообщем, как по мне, самая отличная штука на php ![]() |
Автор: serieznyi 31.8.2012, 15:15 |
Первым под мой взор попал CodeIgniter, но почти сразу я переметнулся к Kohana. Пока что осваиваю ее. Жутко раздражает структура файлов, а точнее не понимание как ее устроить. Когда писал сам, то все было предельно просто, а теперь вот пробеммы. |