Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> чем создать уникальный идентификатор сессии 
:(
    Опции темы
IZ@TOP
Дата 25.2.2010, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(sTa1kEr @  25.2.2010,  01:33 Найти цитируемый пост)
Что мешает в куках циферку хранить? 

Наверное то, что я могу это значение изменить и получить права другого пользователя?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sanich_
Дата 25.2.2010, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Цитата(Kano @ 23.2.2010,  23:27)
Цитата(sanich_ @  23.2.2010,  22:39 Найти цитируемый пост)
md5(id юзера+time()) 

— и не стыдно показывать?

И что здесь стыдиться?
id юзера - это уникальный id юзера в таблице, второго такого значения никогда не будет т.к. автоинкрементное оно.
time() - теоретически может быть одинаковое, но в сумме md5(id юзера+time()) получится на 100% уникальная комбинация.


Это сообщение отредактировал(а) sanich_ - 25.2.2010, 01:13
PM MAIL   Вверх
IZ@TOP
Дата 25.2.2010, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(sanich_ @  25.2.2010,  02:12 Найти цитируемый пост)
И что здесь стыдиться?
id юзера - это уникальный id юзера в таблице, второго такого значения никогда не будет т.к. автоинкрементное оно.
time() - теоретически может быть одинаковое, но в сумме md5(id юзера+time()) получится на 100% уникальная комбинация.

Ну, например, я теперь знаю алгоритм работы хеширования идентификатора пользователя. Чем мне это может помочь? Предположим, это был бы форум и в информации о пользователе можно было бы увидеть время последнего посещения пользователя. Дальше нужно намекать?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sTa1kEr
Дата 25.2.2010, 02:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(IZ@TOP @  25.2.2010,  02:06 Найти цитируемый пост)
Наверное то, что я могу это значение изменить и получить права другого пользователя? 

Т.е. вы по ID пользователя, лежащему в куках, определяете какие он получит права? smile 

Это сообщение отредактировал(а) sTa1kEr - 25.2.2010, 02:07
PM MAIL   Вверх
azesmcar
Дата 25.2.2010, 05:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Цитата(IgorIV @  24.2.2010,  23:46 Найти цитируемый пост)
Ну если azesmcar подразумевал это, то остается только улыбнутся. smile 

Улыбайся, улыбка красит человека.
PM   Вверх
awers
Дата 25.2.2010, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Цитата(sTa1kEr @  25.2.2010,  03:06 Найти цитируемый пост)
Т.е. вы по ID пользователя, лежащему в куках, определяете какие он получит права?  

 smile  smile 
PM MAIL WWW ICQ Skype   Вверх
IgorIV
Дата 25.2.2010, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 7.9.2009

Репутация: 2
Всего: 8



sTa1kEr, он подколол, а ты его подкалываешь smile

azesmcar, спасибо, доброе слово и кошке приятно. Но ни я, ни sanich_, ни словом не обмолвились о базе.
Давайте тогда с другой стороны зайдем.
Пользователь зашел на сайт, началась сессия, пользователь ушел с сайта, закрыл браузер, выключил компьютер, как мне его завтра "узнать"?
PM MAIL   Вверх
azesmcar
Дата 25.2.2010, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



IgorIV

Какой вообще имеет смысл задавать идентификатор пользователя на клиентской стороне? Смысл идентификатора - различение одного пользователя от другого в неком СПИСКЕ. На стороне клиента никакого списка нет, храни данные в cookie, этого достаточно, смысла в идентификаторах я тут не вижу.
PM   Вверх
sTa1kEr
Дата 25.2.2010, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(IgorIV @  25.2.2010,  09:18 Найти цитируемый пост)
Пользователь зашел на сайт, началась сессия, пользователь ушел с сайта, закрыл браузер, выключил компьютер, как мне его завтра "узнать"? 

Смотря что имеется ввиду под "узнать". Если имеется ввиду автологин, то нужно генерировать и записывать в куку некий secret key, по которому и будет происходить авторизация. Соответственно после каждой успешной авторизации старый ключ становится не действительным и генерируется новый ключ.

Если же под "узнать" имеется ввиду выдать приветствие "Добро пожаловать назад, Вася!", то достаточно ID в куке. Либо даже просто  имени.
PM MAIL   Вверх
IZ@TOP
Дата 25.2.2010, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Нафига козе боян? Зачем выдумывать непонятные, никому не нужные костыли?
У вас уже есть идентификатор сессии, зачем вам в куку еще идентификатор пользователя совать, объясните мне?

Добавлено @ 12:36
Цитата(sTa1kEr @  25.2.2010,  03:06 Найти цитируемый пост)
Т.е. вы по ID пользователя, лежащему в куках, определяете какие он получит права? smile

Сталкер такой сталкер. Мне не нужно знать какие я получу права по ID который лежит у меня в куках, я получу нужные мне права путем подстановки чужого идентификатора в своей куке. Особенно, если учитывать, что код пишет насколько грамотные кодеры.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sTa1kEr
Дата 25.2.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(IZ@TOP @  25.2.2010,  13:34 Найти цитируемый пост)
Сталкер такой сталкер. Мне не нужно знать какие я получу права по ID который лежит у меня в куках, я получу нужные мне права путем подстановки чужого идентификатора в своей куке. Особенно, если учитывать, что код пишет насколько грамотные кодеры. 

Это был вопрос как к грамотному кодеру, а не как к хитропому пользователю.

Цитата(IZ@TOP @  25.2.2010,  13:34 Найти цитируемый пост)
У вас уже есть идентификатор сессии, зачем вам в куку еще идентификатор пользователя совать, объясните мне?

Ответ очевиден, для использования его после окончания действия сессии.
PM MAIL   Вверх
IZ@TOP
Дата 25.2.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(sTa1kEr @  25.2.2010,  14:04 Найти цитируемый пост)
Ответ очевиден, для использования его после окончания действия сессии. 


Хорошо. Предположим, сессия закончилась, пользователь ушел. Вернулся он спустя неделю с кукой в которой записан хеш md5(user_id + time), как вы его собираетесь вспоминать? Я не говорю о записи в куку ID, поскольку в таком случае я могу придти с любым ID, как я уже говорил, и система меня примет за того, кого я захочу.

Добавлено через 51 секунду
Цитата(sTa1kEr @  25.2.2010,  14:04 Найти цитируемый пост)
Это был вопрос как к грамотному кодеру, а не как к хитропому пользователю.

Я воспринял этот вопрос как сарказм, ответ был соответствующий.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sTa1kEr
Дата 25.2.2010, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(IZ@TOP @  25.2.2010,  14:30 Найти цитируемый пост)
Предположим, сессия закончилась, пользователь ушел. Вернулся он спустя неделю с кукой в которой записан хеш md5(user_id + time), как вы его собираетесь вспоминать? Я не говорю о записи в куку ID, поскольку в таком случае я могу придти с любым ID, как я уже говорил, и система меня примет за того, кого я захочу.

Именно по ID.

Цитата(IZ@TOP @  25.2.2010,  14:30 Найти цитируемый пост)
Я не говорю о записи в куку ID, поскольку в таком случае я могу придти с любым ID, как я уже говорил, и система меня примет за того, кого я захочу.

Это уже зависит от того, зачем именно нам понадобился ID пользователя. Если для автологина или другой авторизованной операции, то см. мой пост выше. А если, к примеру, для подсчета статистики, то пожалуйста, меняй сколько влезет.
PM MAIL   Вверх
segrey
Дата 25.2.2010, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 26.12.2006

Репутация: нет
Всего: нет



Цитата(sanich_ @ 24.2.2010,  23:12)
Цитата(Kano @ 23.2.2010,  23:27)
Цитата(sanich_ @  23.2.2010,  22:39 Найти цитируемый пост)
md5(id юзера+time()) 

— и не стыдно показывать?

И что здесь стыдиться?
id юзера - это уникальный id юзера в таблице, второго такого значения никогда не будет т.к. автоинкрементное оно.
time() - теоретически может быть одинаковое, но в сумме md5(id юзера+time()) получится на 100% уникальная комбинация.

id юзера 300
time 1267095400
1267095400+300 = 1267095700

id юзера 200
time 1267095500
1267095500+200 = 1267095700
PM MAIL   Вверх
sanich_
Дата 25.2.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Цитата(segrey @ 25.2.2010,  14:01)
Цитата(sanich_ @ 24.2.2010,  23:12)
Цитата(Kano @ 23.2.2010,  23:27)
Цитата(sanich_ @  23.2.2010,  22:39 Найти цитируемый пост)
md5(id юзера+time()) 

— и не стыдно показывать?

И что здесь стыдиться?
id юзера - это уникальный id юзера в таблице, второго такого значения никогда не будет т.к. автоинкрементное оно.
time() - теоретически может быть одинаковое, но в сумме md5(id юзера+time()) получится на 100% уникальная комбинация.

id юзера 300
time 1267095400
1267095400+300 = 1267095700

id юзера 200
time 1267095500
1267095500+200 = 1267095700

Вот опишу подробно как сделал я.

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
PM MAIL   Вверх
Страницы: (4) Все 1 [2] 3 4 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1599 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.