Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[MijoShop] шифрования пароля в MijoShop


Mere

Recommended Posts

Всем привет!

Пишу вам в первый раз. Только начал разбираться с Opencart. 

Столкнулся вот с такой проблемой и без понятия как ее решить.

 

   При регистрации нового покупателя в магазине он заполняет форму и все вроде хорошо. Он залогинен в магазине и может совершать покупки.

Но как только он сделает логаут, под своим паролем уже зайти не может. Пишет что пароль или логин не правильны.

 

Когда пользователь регистрируется в базу летит пароль в таком виде:

$2y$10$PiFaoGZBVR6cp9sOom6ijeA7AiJVhGZY/ucHfYVD8/Mw7hKOeJgjG

$2y$10$0SK3IYYcgkAaFFPinUmYh.EyQ2PmwbMJdjIKNT1fsQ7iGr2CyP6Ey

Это при том что оба раза пароль был 12345.

 

Но когда пароль вводишь через админ панель, в базе он отображается как

827ccb0eea8a706c4c34a16891f84e7b.

 

И после этого покупатель уже может заходить на свой профиль.

 

Подскажите в чем может быть проблема? А еще буду очень признателен если поможете ее решить.

Надіслати
Поділитися на інших сайтах


Проще заглянуть в исходники

system/library/customer.php

(password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)

catalog/model/account/customer.php

         $this->db->query("INSERT INTO " . DB_PREFIX . "customer SET store_id = '" . (int)$this->config->get('config_store_id') . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', salt = '" . $this->db->escape($salt = substr(md5(uniqid(rand(), true)), 0, 9)) . "',
 
password = '" . $this->db->escape(sha1($salt . sha1($salt . sha1($data['password'])))) . "',
 
 
newsletter = '" . (isset($data['newsletter']) ? (int)$data['newsletter'] : 0) . "', customer_group_id = '" . (int)$customer_group_id . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "', status = '1', approved = '" . (int)!$customer_group_info['approval'] . "', date_added = NOW()");

 

admin/model/sale/customer.php

            $this->db->query("UPDATE " . DB_PREFIX . "customer SET salt = '" . $this->db->escape($salt = substr(md5(uniqid(rand(), true)), 0, 9)) . "',
 
password = '" . $this->db->escape(sha1($salt . sha1($salt . sha1($data['password'])))) . "'
 
WHERE customer_id = '" . (int)$customer_id . "'");

 

Смотрите, ищите

Надіслати
Поділитися на інших сайтах

Проще заглянуть в исходники

Смотрите, ищите

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

Надіслати
Поділитися на інших сайтах


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

 

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

В базе пароль 12345 если вводить через админ панель каждый раз вводится разный, то $P$DjbFe37whPN1Ywg4F/XSilEhNHskpN1, то 827ccb0eea8a706c4c34a16891f84e7b и т.д. Но зайти можно по паролю на сайт если его ввели через админ панель. Пользователь еще может зайти по восстановленному паролю что ему автоматом присылает при восстановлении. 

   Но по паролю что вводит при регистрации не получается. И еще один момент... если он зарегистрировался и сразу в профиле поменял пароль, то он работает.

  

У кого то есть вообще догадки в чем может быть дело?

Надіслати
Поділитися на інших сайтах


Только что проверил трижды с 12345 (наплодил себе покупателей)

Вошел, вышел, Вошел - без проблем.

Надіслати
Поділитися на інших сайтах

Только что проверил трижды с 12345 (наплодил себе покупателей)

Вошел, вышел, Вошел - без проблем.

 

    Если есть опыт с opencart мог бы ты глянуть в чем это может быть дело? Просто мне еще неизвестно сколько разбираться и мучится, а знающий может бы глянул и понял в чем может быть причина за 1 минуту.

Буду очень признателен.

Надіслати
Поділитися на інших сайтах


    Если есть опыт с opencart мог бы ты глянуть в чем это может быть дело? Просто мне еще неизвестно сколько разбираться и мучится, а знающий может бы глянул и понял в чем может быть причина за 1 минуту.

Буду очень признателен.

 

Оригинальный опенкарт или сборка?

Модули ставили?

 

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

Может ставили какой-то модуль для упрощенной регистрации?

Надіслати
Поділитися на інших сайтах


Оригинальный опенкарт или сборка?

Модули ставили?

 

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

Может ставили какой-то модуль для упрощенной регистрации?

Стоит MijoShop  2.5.0 и simple opencart 3.8.3. Но эта проблема наблюдалась даже без simple opencart 3.8.3. Сейчас еще раз попробую все поставить заново и проверить. Код что показали идентичен с тем что у меня в файлах.

Надіслати
Поділитися на інших сайтах


тогда почему вы не на форуме MijoShop?

     Ну я думал MijoShop это тот же OpenCart для Joomla.

 

   И кстати я вот что нашел и вроде ближе к решению проблемы. Когда пользователь регистрируется, то в базе пользователь создается в 2х местах. 

В в таблице _users джомловской и в таблице _customer. В таблицу _customer пароль вводится правильно.

Получается при попытке логина покупателя он проверяет его  с паролем из таблицы _users (где он не правильный), а не из таблицы _customer.

 

И вообще чего сразу в 2 места в базе записывается... Кто то может подсказать?

Надіслати
Поділитися на інших сайтах


 Ну я думал MijoShop это тот же OpenCart для Joomla

чтобы вам помочь надо взять и поставить этот MijoShop на локалке или как минимум залезть в код. потому для меня странно, что вы пришли со сторонней сборкой на этот форум, а не на форум сборки.

 

 

 

     Ну я думал MijoShop это тот же OpenCart для Joomla.

 

   И кстати я вот что нашел и вроде ближе к решению проблемы. Когда пользователь регистрируется, то в базе пользователь создается в 2х местах. 

В в таблице _users джомловской и в таблице _customer. В таблицу _customer пароль вводится правильно.

Получается при попытке логина покупателя он проверяет его  с паролем из таблицы _users (где он не правильный), а не из таблицы _customer.

 

И вообще чего сразу в 2 места в базе записывается... Кто то может подсказать?

что и требовалось доказать.

Надіслати
Поділитися на інших сайтах

Начинается...., починка двигателя через выхлопную трубу... MijoShop, это "opencart"  в Joomla. Полное извращение.

Надіслати
Поділитися на інших сайтах

Гість
Ця тема закрита для публікації повідомлень.
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.