![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
Доброго времени суток всем!
Я задался таким вопросом: как написать наиболее удачную регистрацию/авторизацию пользователей на моем сайте. Прежде всего я думал о том, по какому полю следует идентифицировать пользователя. Т.к. на моем сайте подразумевается регистрация как физ. лиц, так и юр., то я решил сделать не ФИО или ник идентифицирующем полем, а адрес электронной почты. Если кто-то считает, что я ошибся, просьба обосновать/предложить свое решение. Далее, встал более глобальный вопрос: как и куда запоминать, что пользователь "успешно авторизировался"? Сперва в голову пришла стандартная идея хранения в куках логина (в нашем случае e-mail`а и зашифрованного пароля). Так же в БД можно хранить "соль" и т.д. и т.п. Но затем мне в голову пришла идея, а то если воспользоваться более продвинутым (?) алгоритмом хранения авторизации - сессии. Что если назначать пользователю, который успешно ввел свои данные, уникальную сессию и хранить в куках именно ее? Тогда можно не меняя пароля, сбросить данную сессию. А можно даже устанавливать ей свое время жизни. В общем эта идея показалась мне более продвинутой. Но все же решил я посоветоваться с вами, гуру php, как считаете - какой вариант хранения оптимальнее? |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 1 Всего: 386 |
У меня рабочий e-mail, который я считал самым "надежным" уже сменился, причем безвозвратно. Самым "живучим" моим почтовым адресом стоит считать адрес на mail.ru ![]() Для Юр лиц часть бывает, что меняются секретари. У каждого может быть собственный адрес. Что делать - перерегистировать? К тому-же регистрация по адресу email - еще один способ засветить адрес для спам-рассылки. Нужно отдельно с этим бороться... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
Данный адрес (а фактически логин) нигде показываться не будет. Он служит только для определения уникальности. Но в принципе, повторюсь, от этой идеи можно отказаться обратно в сторону обычного логина. А что делать с моим главным вопросом?
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 1 Всего: 386 |
Если нужна строчка -- сейчас у нас 25 юзеров на сайте, то нужно завести таблицу - "Юзеры online" с датой последней активности и sessid.
Всю полезную юзеру информацию хранить в сессии. Обычно этого хватает Это сообщение отредактировал(а) ksnk - 4.5.2009, 12:30 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: нет Всего: 35 |
Когда читал, растерялся маленько. А чем стандартный механизм сессий не подходит? |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
сессию можно привязывать к ip, оно по-моиму по-умолчанию редко где привязыается? и при входе чтобы можно было задать время жизни сессии...
если кто-то украдет сессию, то у себя на компе может под логином зайти, тот тут можно привзять айпи по которому она была привязана (но айпи тоже можно вынести любой наружу, так что хз) на движках болиших, еще сделано чтобы форум переспрашивал пароль админа, тогжа когда админ заходит в админку, через какое-то время, если админ не был активный... еще модно использовать JSON http://ua.php.net/manual/en/ref.json.php Это сообщение отредактировал(а) gcc - 4.5.2009, 14:24 |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
Мы не о том совсем.
Если вас смущает слово сессия, я могу назвать это "уникальной строкой, идентифицирующей пользователя". Не суть. Вопрос такой: что лучше А или Б? А) хранить в куках логин/пароль и проверять при каждом заходе их. тогда если украдут куки - могут узнать и пароль. тогда администратор сайта не может без ведома пользователя обезопасить его (ибо если сменит ему праоль, пользователь об этом узнает) Б) хранить в куках уникальную строку тогда, можно менять ее каждые сутки, что снизит шансы на ее кражу (а даже если она была сворована и вор потихому сидел под чужой уник. строкой, то не больше суток). тогда же при краже вор НЕ УЗНАЕТ сам пароль пользователя Мне кажется второй вариант лучше, но почему везде используется первый? |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
второй лучше, где используется первый?
хотя там можно закриптограифровать пароль, хорошо "посолить" http://ru.wikipedia.org/wiki/Радужная_таблица http://www.usenix.org/events/usenix99/prov...tml/node10.html Это сообщение отредактировал(а) gcc - 4.5.2009, 17:54 |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
Как это где? На данном форуме, например. То есть разработчики IPB из года в год выбирают худший вариант?
|
|||
|
||||
realPROme |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
Aliance, сайт должен запоминать пользователя? т.е. автоматическая авторизация при последующем заходе нужна? если да - то первый вариант, если нет - стандартный механизм сессий в пхп
|
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
Должен запоминать. Но какая разница сайту что будет хранится в куках - логин или сессия. НЕ СТАНДАРТНАЯ СЕССИЯ, а сессия (или уникальный номер авторизации, если кому угодно) хранится в куках. Я не знаю как еще объяснить, если уже третий раз Вы пишете про стандартную session_start() - я говорю НЕ ПРО НЕЕ.
За примером далеко ходить не нужно - Zend Framework предлагает авторизацию, основанную именно на таком механизме. |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Я всегда делаю так, мне так больше нравится в выглядит безопаснее. Украсть её можно, но вот только уже не хэш пароля. ![]() |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Хранить логин и хэш. |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Б - мне кажется лучше потому что:
- идентифицировать кто это по хэшу можем только мы - меньше ненужной информации в куках - если всё же хэш украли, то войдя заново в профиль хэш меняется |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
nerezus, аргументация?
Elfet, спасибо. Тоже придерживаюсь этого варианта. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |