The IceMan Blog

איפוס סיסמת של משתמש-העל ב-Drupal

נכתב על ידי בתאריך: 21/04/2012
תחת הקטגוריות: טיפים, מדריכים, קוד פתוח

drupal-logoכבר פעמיים שהדבר קרא לי, משום מה אחרי ששינתי פרטים בפרופיל של המשתמש-על, לא הצלחתי להתחבר שוב. ואז חיפשתי דרך לאפס את הסיסמה, בפעם הראשונה היה מדובר ה-Drupal 6 ושם הסיסמה היתה ב-MD5, כך שאפשר היה להשתמש בפונקציה הפנימית של MySQL כדי לכתוב את הסיסמה ישירות. ב-Drupal 7 הסיסמה היא Salted SHA512, ולכן האיפוס הפעם לקח טיפה יותר זמן.

אחרי שהפתרון הארוך הצליח, מצאתי גם פתרון מובנה וקצר יותר.

הדרך הארוכה

הדרך הארוכה כוללת שימוש בפונקציה פנימית של Drupal בשם user_hash_password כדי לבצע HASH על מחרוזת. הטריק שמצאתי בפורומים של Drupal היה להכניס את הפונקציה לקוד php של האתר ולתת לאתר לקודד לי את הסיסמה הידועה, ומשם פשוט לדחוף את הסיסמה המקודדת ישירות ל-DB.

הוספת השורות הבאות לקוד בעמוד index.php 

require_once 'includes/password.inc';
echo user_hash_password('givenpassword');
die();

הקוד שלכם אמור להראות ככה:


כאשר תכנסו לאתר, אתם תקבלו מחרוזת משונה, כמו $S$Cd059Vsxc8berFeg6hspaa7ejx2bSxyUisvCbT4h9o8XIgSUtPKz, מה שנשאר לעשות הוא להריץ את הפקודה הבאה עבור עדכון הסיסמה ל-DB, כל אחד והדרך שלו, יש את אלו שיעדיפו ישירות משורת הפקודה ואחרים דרך ממשקי ניהול כמו phpMyAdmin.

UPDATE users SET pass='$S$Cd059Vsxc8berFeg6hspaa7ejx2bSxyUisvCbT4h9o8XIgSUtPKz' WHERE uid=1;

הדרך הקצרה

Druapl מגיעה כבר עם סקריפט שיכול ליצור לכם את ה-HASH, הסקריפט נקרא password-hash.sh והוא יושב תחת התיקיה scripts בתקיית ה-druapl שלכם. יש להריץ את הסקריפט תחת גרסה 5 של php ומתוך תקיית השורש של Drupal.

/usr/local/php5/bin/php scripts/password-hash.sh test

password: test 		hash: $S$DGFKuQOT6z8uOl/uU9KohBN7rsXiG1SOS0lKvnmmum/TSJIh3qE8

נשאר רק להריץ את הפקודת עדכון ב-SQL וזהו, פשוט וקל ולא דורש להתעסק עם הקוד של האתר.

מקורות

  1. http://drupal.org/node/992400
  2. http://drupal.org/node/1023428


:, , , ,

2 תגובות לפוסט זה

השאר תגובה

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Blogroll

A few highly recommended websites...

Too Cool for Internet Explorer