ریست پسورد سیستم پرستا شاپ
ریست پسورد سیستم پرستا شاپ
با سلام به دوستان عزیز
امروز در طی کار به یک مشکل برخوردم که باعث شد این مطلب را برای اطلاع رسانی منتشر کنم. یکی از دوستان عزیز که در وب سایت خودشان از سیستم فروشگاه اینترنتی پرستا شاپ (Presta Shop) استفاده کرده اند با مشکل فراموش کردن رمز قسمت مدیریت این سیستم روبرو شده بودند و امکان بازیابی آن بدلیل مشکلات فنی از طریق خود سیستم امکان پذیر نبود.
در چنین مواقعی تنها راه حل تغییر رمز عبور از طریق phpmyadmin کنترل پنل هاست می باشد. بنابراین وارد کنترل پنل هاست شدم و phpmyadmin را باز کردم اولین نکته در این مرحله این است که بدانید کدام پایگاه داده مربوط به سیستم پرستا است. وقتی پایگاه داده پرستا رو پیدا کنید و آن را باز کنید با 146 جدول (شاید در نسخه های مختلف کمی این تعداد فرق کند) روبرو می شوید.
در درون پایگاه داده به دنبال جدول ps_employee بگردید و آن را باز کنید.
در این قسمت کافی است کاربری که مایل هستید رمز آن را عوض کنید را پیدا کنید و یک دستور SQL ویرایش را برای آن آماده کنید.
در سیستم هایی مثل پرستا، وردپرس و … از مکانیزمی بنام هش (Hash) برای رمز نگاری رمزهای عبور استفاده می شود که عمل هش خود دارای چندین استاندارد مشخص می باشد که یکی از معروفترین آنها که در پرستا نیز مورد استفاده قرار می گیرد سیستم رمزنگاری MD5 می باشد. اما در سیستم پرستا برای امنیت بیشتر یک الگوی خاص تصادفی به MD5 اضافه می شود که اگر از آن هنگام رمز نگاری استفاده نشود رمز ایجاد شده کاربردی نخواهد داشت.
یعنی اگر شما رمز عبور یک کارمند را به تنهایی با استاندارد MD5 هش کنید آن رمز درست نخواهد بود و کاربر نمی تواند با آن وارد سیستم شود. باید حتماً الگوی رمزنگاری اختصاصی سیستم نیز به md5 اضافه شود. این الگو با نام COOKIE_KEY در یک فایل با نام settings.inc.php در پوشه config مسیر نصب پرستا قرار دارد که آن را از این مسیر می توانید بدست بیاورید. به طور مثال مسیری مثل زیر:
/public_html/shop/config/settings.inc.php
این الگو یک رشته بلند نامفهوم است مثلا بصورت زیر
define(‘
_COOKIE_KEY_’, ‘rppiseMqWyZFThPg1drh65jvxhgfj6qOvTIdMigdwgkeDW5cEmwv7d56‘);
حالا باید این الگو را با رمز جدیدی که می خواهید برای کاربر قرار دهید، ترکیب کرده و رشته حاصل را با استفاده از استاندارد هش md5 رمزنگاری کرده و در جدول کارمند در فیلد passwd دخیره کنید. برای این کار باید یک کوئری بصورت زیر آماده و آن را اجرا کنید.
مثلا من می خواهم رمز عبور کاربری که شناسه آن 1 است را به عبارت 987654 تغییر دهم باید از الگوی زیر استفاده کنم:
md5(“_COOKIE_KEY_+new password“);
در ادامه کوئری اصلی من بصورت زیر خواهد شد:
UPDATE `ps_employee` SET `passwd` = MD5(“rppiseMqWyZFThPg1drh65jvxhgfj6qOvTIdMigdwgkeDW5cEmwv7d56987654“) WHERE `ps_employee`.`id_employee` = 1;
دستور بالا رمز عبور کاربری که شناسه آن 1 است را به عبارت 987654 تغییر می دهد. قسمت قرمز رنگ کد Cookie_Key می باشد و قسمت آبی رمز جدید.
باید کارهای زیر مرحله به مرحله انجام شوند:
- باز کردن جدول در phpmyadmin
- انتخاب گزینه sql یا گزینه query (متفاوت در بعضی سیستم ها)
- آماده کردن کوئری مورد نظر به صورت توضیح داده شده
- اجرای کوئری
- شما یک رمزعبور جدید دارید.
موفق باشید.