Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Шифрование 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+соль) - с этим все понятно.

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

Опубликовано:
  • Автор

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

Ну я подумал что это хэш потому-что, попробовал создать куку 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 от частично или полностью рандомных данных.

Опубликовано:
  • Автор

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

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

Опубликовано:

Исходный код всего 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, попробую разобраться и поставить какой-нибудь кастыль. если вдруг у кого-то есть предложения и предположения то выскажите.

Опубликовано:

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

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

Опубликовано:

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

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

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

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

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.