Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

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

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Шифрование 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

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.