Биллинговая система Nodeny
23 Ноября 2024, 05:34:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Проблема с авторизацией в админке  (Прочитано 6947 раз)
muff
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 31


Просмотр профиля WWW Email
« : 14 Февраля 2014, 14:39:15 »

Всем привет.

После переноса  биллинга на другой сервер (соответственно с софтом поновее), вылезла странная бага. Некоторые пользователи не могут авторизоваться в "Личном кабинете". В биллинге, когда пытаешся посмотреть пароль - он не выводится.
После копания обнаружил, что у таких пользователей пароль обязательно заканчивается на точку с запятой.
На старом сервере авторизация выполняется корректно.
Перенос выполнял переносом каталогов и перезаливанием БД.

Не подскажете куда копать?

Записан

YuSHa
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 183


318444293
Просмотр профиля Email
« Ответ #1 : 14 Февраля 2014, 15:44:48 »

простым копированием файлов БД? или через dump & restore?
Записан
Nafanya
NoDeny
Старожил
*

Карма: 1
Offline Offline

Сообщений: 459


412112973
Просмотр профиля Email
« Ответ #2 : 14 Февраля 2014, 16:21:48 »

Всем привет.

После переноса  биллинга на другой сервер (соответственно с софтом поновее), вылезла странная бага. Некоторые пользователи не могут авторизоваться в "Личном кабинете". В биллинге, когда пытаешся посмотреть пароль - он не выводится.
После копания обнаружил, что у таких пользователей пароль обязательно заканчивается на точку с запятой.
На старом сервере авторизация выполняется корректно.
Перенос выполнял переносом каталогов и перезаливанием БД.

Не подскажете куда копать?



Ключ шифрования паролей в sat.cfg что на старом сервере что на новом должен быть одинаковым
Записан

Кому то Бог дал ручки, а кому то - грабельки.
muff
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 31


Просмотр профиля WWW Email
« Ответ #3 : 14 Февраля 2014, 17:30:15 »

простым копированием файлов БД? или через dump & restore?

Дамп через mysqldump, ну и на другом сервере этот дамп залил.
Записан

muff
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 31


Просмотр профиля WWW Email
« Ответ #4 : 14 Февраля 2014, 17:36:39 »

Ключ шифрования паролей в sat.cfg что на старом сервере что на новом должен быть одинаковым

В sat.cfg ключа шифрования нету, там только параметры коннекта к БД. Passwd_Key находится в nodeny.cfg.pl. Они совпадают.
Записан

Nafanya
NoDeny
Старожил
*

Карма: 1
Offline Offline

Сообщений: 459


412112973
Просмотр профиля Email
« Ответ #5 : 14 Февраля 2014, 18:19:49 »

Ключ шифрования паролей в sat.cfg что на старом сервере что на новом должен быть одинаковым

В sat.cfg ключа шифрования нету, там только параметры коннекта к БД. Passwd_Key находится в nodeny.cfg.pl. Они совпадают.


Смотря какая версия Нодени. Это относиться к версии Нодени+
Записан

Кому то Бог дал ручки, а кому то - грабельки.
muff
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 31


Просмотр профиля WWW Email
« Ответ #6 : 17 Февраля 2014, 20:10:34 »

Баг оказался в MySQL...
На старом сервере:
Код:
mysql> SELECT AES_DECRYPT(passwd, 'KEY_HERE') FROM users WHERE id=1;
+---------------------------------+
| AES_DECRYPT(passwd, 'KEY_HERE') |
+---------------------------------+
| 12345                           |
+---------------------------------+
1 row in set (0.00 sec)

На новом сервере:
Код:
mysql> SELECT AES_DECRYPT(passwd, 'KEY_HERE') FROM users WHERE id=1;
+---------------------------------+
| AES_DECRYPT(passwd, 'KEY_HERE') |
+---------------------------------+
| NULL                            |
+---------------------------------+
1 row in set (0,00 sec)

На старом сервере версия MySQL 5.1.70, а на новом 5.6.15.
Буду копать дальше...
Записан

ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #7 : 17 Февраля 2014, 20:23:46 »

а покажи как
SELECT passwd FROM users WHERE id=1;
на новом и на старом
Записан
muff
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 31


Просмотр профиля WWW Email
« Ответ #8 : 17 Февраля 2014, 21:09:03 »

Через phpMyAdmin результат идентичен
Код:
=ZЏ~?ТЃ’`А5“;

В консоли же результаты разные.
Старый сервер:
Код:
mysql> SELECT passwd FROM users WHERE id=1;
+------------------+
| passwd           |
+------------------+
???▓`?5⌠; |
+------------------+
1 row in set (0.01 sec)
Новый сервер:
Код:
mysql> SELECT passwd FROM users WHERE id=1;
+------------------+
| passwd           |
+------------------+
?р│▓`ю5⌠; |
+------------------+
1 row in set (0,00 sec)

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

Пример пароля, который корректно обрабатывается...
На обеих серверах одинаковый результат:
Код:
mysql> SELECT AES_DECRYPT(passwd, 'KEY_HERE') FROM users WHERE id=2;
+---------------------------------+
| AES_DECRYPT(passwd, 'KEY_HERE') |
+---------------------------------+
| 777audi777                      |
+---------------------------------+
1 row in set (0.00 sec)


В phpMyAdmin результат вывода passwd тоже одинаковый:
Код:
YђI9]Rµ:^u!ѓ€Є
Результат выполнения запроса вывода passwd в консоли:
Старый сервер:
Код:
mysql> SELECT passwd FROM users WHERE id=2;
+------------------+
| passwd           |
+------------------+
| Y?I9R╣:^u!?─? |
+------------------+
1 row in set (0.01 sec)
Новый сервер:
Код:
mysql> SELECT passwd FROM users WHERE id=2;
+------------------+
| passwd           |
+------------------+
| Y░I9R╣:^u!┐┬╙ |
+------------------+
1 row in set (0,00 sec)
Записан

ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #9 : 17 Февраля 2014, 21:17:22 »

перенеси базу бинанрно с последующим апдейтом.
при переносе мускул должен быть останвлен
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!