לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 26-08-2008, 00:17
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
בדיקת עוגיות עם תוכן בmd5

שלום.
כשאני שומר בעוגיות את פרטי המשתמש, אני עושה זאת עם צופן md5.
כדי להסביר את עצמי הכי טוב, אני פשוט אראה את הקוד:
קוד PHP:
 setcookie("login"md5($l_username.'-'.$l_password), time()+999999); 

כשהמשתמש חוזר לאתר אחרי חצי שעה, ואני רוצה לבדוק את העוגיה אני צריך לבדוק אם שם המשתמש נמצא במסד נתונים, ואם כן, אז אם הסיסמה תואמת.
שאילתה פשוטה בsql:
קוד PHP:
 SELECT FROM members WHERE username='$l_username' AND password='$l_password' AND status='1' 

הבעיה שאם שם המשתמש והסיסמה נשמרים בmd5, אין לי שום אפשרות להפריד אותם.
יש אפשרות, אבל זה לעבור על כל השדות בטבלה, ולבדוק את זה עם if בphp.
אני חשבתי על לשמור אותם בעוגיה בשני צפנים שונים.
ובאמצע להוסיף סימנים שאין סיכויים שmd5 יוסיף.
ככה אני אוכל לרוץ על המחרוזת ולהפריד אותה לשני מחרוזות שונות.
רציתי לדעת אם יש דרך יעילה יותר.
אם כן, אני אשמח לשמוע עליה!
תודה מקרב לב.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 01-09-2008, 11:43
צלמית המשתמש של iBot
  משתמש זכר iBot iBot אינו מחובר  
 
חבר מתאריך: 16.08.08
הודעות: 123
בתגובה להודעה מספר 15 שנכתבה על ידי dardevil שמתחילה ב "אבל זה לא הגיוני מה שאתה..."

נמאס לי שאנשים שמנים את מה שאני אומר... ובמקום לשאול לפירוט והרחבה הם מחליטים לתרגם אותי כמו שבא להם><

ההמלצות שלי היו כאלו:
1. במסד אתה תשמור שם משתמש לא מוצפן!
2. במסד אתה תשמור סיסמא מוצפנת.
3. בעוגייה אתה תשמור שם משתמש או ID לא מוצפן!
4. בעוגייה אתה תשמור סיסמא מוצפנת.

כשאתה עושה בדיקה זה נעשה כך:
1. אתה מקבל את השם משתמש או ה-ID שבעוגייה, ואז את הסיסמא, ובעזרת שימוש ב-WHERE של SQL אתה בודק אם יש ערך שכולל את 2 הדברים, אם לא אתה יודע שהמשתמש לא קיים או שהסיסמא לא נכונה (ככה עושים במקומות המקצועיים, לא נהוג לחשוף לאנשים אם הם מצאו שם משתמש אמיתי אבל טעו בסיסמא).
או דרך ארוכה יותר..
1. אתה מקבל את שם המשתשמ או ה-ID ששמרת בעוגייה ובעזרת שאילתה (בה אתה משתמש ב-WHERE עבור המידע שקיבלת) את מוציא את הסיסמא.
במקרה שלא נמצאה תוצאה =>
2.א. קיימת שגיאה כי המשתמש לא נמצא.
במקרה שכן נמצאה תוצאה =>
2.ב. אתה בודקת בעזרת תנאי האם הסיסמא שהוצאת שווה לזאת שבעוגייה.
אם כן =>
3.א. יש התחברות.
אם לא =>
3.ב. שגיאה על כך שהסיסמא לא נכונה.
אני לא חושב שיש לי דרך להיות יותר ברור מזה..
_____________________________________

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #17  
ישן 01-09-2008, 12:33
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
בתגובה להודעה מספר 16 שנכתבה על ידי iBot שמתחילה ב "נמאס לי שאנשים שמנים את מה..."

למה אתה עצבני?

אתה כתבת: "אתה מקבל את השם משתמש או ה-ID שבעוגייה, ואז את הסיסמא"
אני כבר כתבתי בהודעה הראשונה שלי, שאם אני שומר את השם משתמש הסיסמה באותה עוגיה, אני אהיה חייב לעבור על כל העוגיה ולהפריד אותה לשתי מחרוזות.
זה לא משנה אם אני מצפין את שם המשתמש או את הסיסמה.
לפי איך שאתה מציע(ואיך שאני הצעתי בהתחלה), העוגיה אמורה להראות משהו כזה:
iBot665%$%#
ואז אני בעצם חייב לעבור עליה ולהפריד אותה לשתי מחרוזות שונות:
iBot
665%$%#
מבין?
לכן שאלתי אם יש דרך יעילה יותר שתחסוך לי את המעבר על העוגיה וההפרדה שלה.
וכן, נראה לי ששימוש בשתי עוגיות, יותר יעיל מלולאה שתרוץ על מחרוזת ותחלק אותה לשתי מחרוזות או למערך.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #22  
ישן 02-09-2008, 17:22
  משתמש זכר iNfLuX iNfLuX אינו מחובר  
 
חבר מתאריך: 13.07.06
הודעות: 106
שלח הודעה דרך ICQ אל iNfLuX
בתגובה להודעה מספר 1 שנכתבה על ידי dardevil שמתחילה ב "בדיקת עוגיות עם תוכן בmd5"

אין צורך בהסתבכות. אפשר להשתמש בשאילתת SQL פשוטה למדי.

קוד PHP:
 $sqlQuery "select hashed_user_data from (
                 select md5(CONCAT(u.user_name,u.user_password)) hashed_user_data
                 from user u
              ) h
              where hashed_user_data = '"
.$myCookieHashedData."'"


השאילתא תחזיר את הערך המקודד של שם המשתמש והסיסמא ביחד. לכן, אם חוזרת תוצאה המשתמש קיים ותואם לעוגייה

where clause-לצורך הבנה נסה להריץ את השאילתא ללא ה
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://muzx.net/files/public/avatars/1208187486.gif]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://muzx.net/files/public/avatars/1188591880.gif]


נערך לאחרונה ע"י iNfLuX בתאריך 02-09-2008 בשעה 17:30.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #26  
ישן 03-09-2008, 19:41
  משתמש זכר iNfLuX iNfLuX אינו מחובר  
 
חבר מתאריך: 13.07.06
הודעות: 106
שלח הודעה דרך ICQ אל iNfLuX
בתגובה להודעה מספר 25 שנכתבה על ידי dardevil שמתחילה ב "אוקייייי עכשיו ממש חידשת..."

concat זאת פונקציה של sql אשר מאפשרת לחבר מספר עמודות לעמודה אחת בלבד, לדוגמא:
טבלה פשוטה של שם משתמש וסיסמא

כדי לקבל את שני העמודות מחוברות פשוט עוטפים את שמות השדות ב concat

קוד PHP:
 concat(username,'-',password


dardevil-myMD5HashedPassword :התוצאה שתתקבל היא
md5 בנוסף עם תעטוף את התוצאה בפונקציה
תוכל לקבל בדיוק את מה שאתה שומר בעוגייה.

"u" שמתי
לפני השדות כמזהה הטבלה אם תשים לב לשאילתא הבאה תוכל להבין בברור למה זה נעשה

קוד PHP:
 select u.* from users u
אפשר לכתוב גם
select u
.* from users as 


מקווה שהייתי ברור, בכל מקרה אל תהסס לשאול.
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://muzx.net/files/public/avatars/1208187486.gif]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://muzx.net/files/public/avatars/1188591880.gif]


נערך לאחרונה ע"י iNfLuX בתאריך 03-09-2008 בשעה 19:46.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 17:57

הדף נוצר ב 0.09 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר