Jump to content
Sign in to follow this  
Mere

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

Recommended Posts

Всем привет!

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

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

 

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

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

 

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

$2y$10$PiFaoGZBVR6cp9sOom6ijeA7AiJVhGZY/ucHfYVD8/Mw7hKOeJgjG

$2y$10$0SK3IYYcgkAaFFPinUmYh.EyQ2PmwbMJdjIKNT1fsQ7iGr2CyP6Ey

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

 

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

827ccb0eea8a706c4c34a16891f84e7b.

 

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

 

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

Share this post


Link to post
Share on other sites

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

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 . "'");

 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

  

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

Стоит MijoShop  2.5.0

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

 

 

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

 

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.