Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
e1mer

Шифрование session_id [IPB 3.3]

Рекомендованные сообщения

Начал разбирать куки в IPB.

Достал две куки по которым определяет система, авторизован ли ты на форуме, или же нет.

 

 

pass_hash - С этим куком все ясно, он не шифруется, а берется из базы данных, таблица member_login_key, это уже готовый хэш пароля пользователя (md5+соль) - с этим все понятно.

 

session_id - С этим куком я разобраться не могу, нужна помощь. Мне даже не ясно как сие чудо шифруется, возможно md5, пробовал чистый MD5, но толку ноль, при каждой новой авторизации, значение меняется, т.е я думаю это уже не member_id.

 

Прошу помощи у программистов данного форума, помогите разобрать session_id, возможно пригодиться не только мне.

Поделиться сообщением


Ссылка на сообщение

Огромное спасибо, тему можно закрывать.

Поделиться сообщением


Ссылка на сообщение

pass_hash - С этим куком все ясно, он не шифруется, а берется из базы данных, таблица member_login_key, это уже готовый хэш пароля пользователя (md5+соль) - с этим все понятно.

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

Ну я подумал что это хэш потому-что, попробовал создать куку pass_hash с данными из таблицы member_login_key, и эту куку аппетитно скушал форум.

Поделиться сообщением


Ссылка на сообщение

Ну я подумал что это хэш потому-что, попробовал создать куку pass_hash с данными из таблицы member_login_key, и эту куку аппетитно скушал форум.

Ну так если это ключ авторизации пользователя (member_login_key). Естественно "оригинал" ключа хранится в бд, а "копия" в куках.

Поделиться сообщением


Ссылка на сообщение

Исходный код всего IP.Board открыт. К чему этот вопрос вообще? И, самое забавное, что вы вкладываете в понятие "расшифровать cookie"? В них ничего не зашифровано, если что.

 

Всего есть 4 ключевые cookie: 'session_id', 'admin_session_id', 'member_id', 'pass_hash'.

 

1. session_id - основной ключ для авторизации, назначается всем подряд при первом заходе не сайт (включая ботов и гостей).

 

Генерируется как:

session_id = md5( uniqid( microtime(), true ) . $this->_member->ip_address . $this->_userAgent );

 

Хранится в таблице sessions, где, если пользователь авторизован, установлена прямая связь между этим id и member_id.

 

2. Связка member_id и pass_hash - вариант авторизации с автовходом (раньше была такая галочка, сейчас применяется для внешних методов авторизации для принудительной перепривязки сессии к заданному member_id).

 

member_id и pass_hash напрямую назначаются из массива данных пользователя, хранящихся в таблице members:

				IPSCookie::set( "member_id" , $member['member_id']       , 1 );
			IPSCookie::set( "pass_hash" , $member['member_login_key'], 1 );

 

member_login_key генерируется как:

md5(IPSMember::generatePasswordSalt(60));

 

Где generatePasswordSalt - функция, генерирующая заданной длины (по-умолчанию - 5 символов) набор случайных символов.

 

3. admin_session_id - сессии в админке, хранятся в своей табличке sore_sys_cp_sessions, где admin_session_id является ключом, и опять же является результатом работы md5(). Сейчас носят исторический характер и уже даже не проверяются, т.к. та же сессия в админке теперь всегда передается как $_GET-параметр.

 

Очевидно, что тут просто нечего расшифровывать. Все сессии - это md5 от частично или полностью рандомных данных.

  • Upvote 4

Поделиться сообщением


Ссылка на сообщение

@Ritsuka, Спасибо большое.

И я просил помочь разобрать session_id, а не расшифровать о_0

  • Downvote 1

Поделиться сообщением


Ссылка на сообщение

Исходный код всего IP.Board открыт. К чему этот вопрос вообще? И, самое забавное, что вы вкладываете в понятие "расшифровать cookie"? В них ничего не зашифровано, если что.

 

Всего есть 4 ключевые cookie: 'session_id', 'admin_session_id', 'member_id', 'pass_hash'.

 

1. session_id - основной ключ для авторизации, назначается всем подряд при первом заходе не сайт (включая ботов и гостей).

 

Генерируется как:

session_id = md5( uniqid( microtime(), true ) . $this->_member->ip_address . $this->_userAgent );

 

Хранится в таблице sessions, где, если пользователь авторизован, установлена прямая связь между этим id и member_id.

 

2. Связка member_id и pass_hash - вариант авторизации с автовходом (раньше была такая галочка, сейчас применяется для внешних методов авторизации для принудительной перепривязки сессии к заданному member_id).

 

member_id и pass_hash напрямую назначаются из массива данных пользователя, хранящихся в таблице members:

				IPSCookie::set( "member_id" , $member['member_id']       , 1 );
			IPSCookie::set( "pass_hash" , $member['member_login_key'], 1 );

 

member_login_key генерируется как:

md5(IPSMember::generatePasswordSalt(60));

 

Где generatePasswordSalt - функция, генерирующая заданной длины (по-умолчанию - 5 символов) набор случайных символов.

 

3. admin_session_id - сессии в админке, хранятся в своей табличке sore_sys_cp_sessions, где admin_session_id является ключом, и опять же является результатом работы md5(). Сейчас носят исторический характер и уже даже не проверяются, т.к. та же сессия в админке теперь всегда передается как $_GET-параметр.

 

Очевидно, что тут просто нечего расшифровывать. Все сессии - это md5 от частично или полностью рандомных данных.

 

 

Огромное спасибо, сижу мучаюсьс форумом 3.3.2 обновил с 3.1.4 там крос регистрация м авторизация у меня была, просто записывал в мемберс передаваймый мне логин, пароль, соль и мыло. а на новой версии не пашет авторизация, в куки ставится только sesion_id, попробую разобраться и поставить какой-нибудь кастыль. если вдруг у кого-то есть предложения и предположения то выскажите.

Поделиться сообщением


Ссылка на сообщение

а на новой версии не пашет авторизация

Не думаю что в новой версии что-то кардинально изменилось в авторизации. Если посмотреть на ибр-е, там по прежнему стоят те же куки.

Поделиться сообщением


Ссылка на сообщение
05/21/12 15:18 (изменено)

Не думаю что в новой версии что-то кардинально изменилось в авторизации. Если посмотреть на ибр-е, там по прежнему стоят те же куки.

коки))) теже,

блин чтоб сейчас вспомнил как исправил, но помню что проблемка у меня была с записью в базу нового пользователя, в старой версии регистрация у меня происходила автоматически при заходе с сайта, записывал нагло в базу id, name-их там несколько штук, мыло пароль, а member_login_key генерировался где-то стандартным метадом, и не знаю где, был я в общем счастлив, а в новой версии этого не канало, вообщем где-то я этот метода лопатил, и переносил со старого ядра.

Изменено пользователем otoman

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...