![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Наверное то, что я могу это значение изменить и получить права другого пользователя? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
sanich_ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
И что здесь стыдиться? id юзера - это уникальный id юзера в таблице, второго такого значения никогда не будет т.к. автоинкрементное оно. time() - теоретически может быть одинаковое, но в сумме md5(id юзера+time()) получится на 100% уникальная комбинация. Это сообщение отредактировал(а) sanich_ - 25.2.2010, 01:13 |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Ну, например, я теперь знаю алгоритм работы хеширования идентификатора пользователя. Чем мне это может помочь? Предположим, это был бы форум и в информации о пользователе можно было бы увидеть время последнего посещения пользователя. Дальше нужно намекать? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
||||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 12 Всего: 211 |
||||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
||||
|
||||
IgorIV |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
sTa1kEr, он подколол, а ты его подкалываешь
![]() azesmcar, спасибо, доброе слово и кошке приятно. Но ни я, ни sanich_, ни словом не обмолвились о базе. Давайте тогда с другой стороны зайдем. Пользователь зашел на сайт, началась сессия, пользователь ушел с сайта, закрыл браузер, выключил компьютер, как мне его завтра "узнать"? |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 12 Всего: 211 |
IgorIV
Какой вообще имеет смысл задавать идентификатор пользователя на клиентской стороне? Смысл идентификатора - различение одного пользователя от другого в неком СПИСКЕ. На стороне клиента никакого списка нет, храни данные в cookie, этого достаточно, смысла в идентификаторах я тут не вижу. |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Смотря что имеется ввиду под "узнать". Если имеется ввиду автологин, то нужно генерировать и записывать в куку некий secret key, по которому и будет происходить авторизация. Соответственно после каждой успешной авторизации старый ключ становится не действительным и генерируется новый ключ. Если же под "узнать" имеется ввиду выдать приветствие "Добро пожаловать назад, Вася!", то достаточно ID в куке. Либо даже просто имени. |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Нафига козе боян? Зачем выдумывать непонятные, никому не нужные костыли?
У вас уже есть идентификатор сессии, зачем вам в куку еще идентификатор пользователя совать, объясните мне? Добавлено @ 12:36
Сталкер такой сталкер. Мне не нужно знать какие я получу права по ID который лежит у меня в куках, я получу нужные мне права путем подстановки чужого идентификатора в своей куке. Особенно, если учитывать, что код пишет насколько грамотные кодеры. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Это был вопрос как к грамотному кодеру, а не как к хитропому пользователю.
Ответ очевиден, для использования его после окончания действия сессии. |
|||
|
||||
IZ@TOP |
|
||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Хорошо. Предположим, сессия закончилась, пользователь ушел. Вернулся он спустя неделю с кукой в которой записан хеш md5(user_id + time), как вы его собираетесь вспоминать? Я не говорю о записи в куку ID, поскольку в таком случае я могу придти с любым ID, как я уже говорил, и система меня примет за того, кого я захочу. Добавлено через 51 секунду
Я воспринял этот вопрос как сарказм, ответ был соответствующий. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Именно по ID.
Это уже зависит от того, зачем именно нам понадобился ID пользователя. Если для автологина или другой авторизованной операции, то см. мой пост выше. А если, к примеру, для подсчета статистики, то пожалуйста, меняй сколько влезет. |
|||
|
||||
segrey |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 26.12.2006 Репутация: нет Всего: нет |
id юзера 300 time 1267095400 1267095400+300 = 1267095700 id юзера 200 time 1267095500 1267095500+200 = 1267095700 |
||||
|
|||||
sanich_ |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
Вот опишу подробно как сделал я. 1. Вместо ID юзера числового я использовал email при регистрации - он уникальный, email пользователя нигде в свободном доступе светиться не будет. 2. значение куки формирую так $id_session=md5($_POST['email'].time()); Если пользователь авторизовался, то установилась кука в браузере и в БД в таблице юзеров у залогинившегося юзера сохранился этот самый $id_session. Время жизни куки ставлю пожизженное) 3. Если юзер закрыл браузер, потом через некое время снова открыл, проверяю куку, если она установлена, то ищу в БД в таблице юзеров, если есть такая сессия, то вывожу на экран приветствие юзера. Если нет, то показываю форму авторизации. 4. Учитывая, что email пользователя можно подобрать, например - восстановлением пароля, можно тупо вбивать разные email пока не получишь ответ, что пароль отправлен на email пользователя, - регистрацией, тоже использовать разные email пока система не скажет что такой email использовать незя, т.е. email в системе такой есть 5. После того как подобрали email, т.е. знаем что пользователь с таким email в системе существует, пробуем подобрать time(). В комбинации наша_кука=md5(email+time()) Т.е. вероятность несанкционированного доступа есть, тока надо потратить немало времени. И самое главное, прежде чем что-то подбирать, нужно знать что кеш куки строится именно как md5(email+time()), а ведь этого ж никто не знает?))))) Жду ваши советы по улучшению этой схемы!!!!! Это сообщение отредактировал(а) sanich_ - 25.2.2010, 15:20 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |