Перейти к содержанию
Mere

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

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

Всем привет!

Пишу вам в первый раз. Только начал разбираться с 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  2.5.0

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

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


Ссылка на сообщение
Поделиться на другие сайты

тогда почему вы не на форуме 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.