הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   אישור הרשמה (https://hosts.co.il/forums/showthread.php?t=61834)

SlipY 12-04-08 03:19

אישור הרשמה
 
אהלן,
עניין אותי לדעת איך עובד עיקרון אישור ההרשמה
הרי בעת ההרשמה יוצרים איזשהוא משפט רנדומלי
שנשלח למשתמש באימייל עם קישור

אז בעצם צריך לשמור במסד של המשתמש גם את משפט האישור וגם האם הוא עבר אישור או לא ?
או שיוצרים טבלה למשתמשים שעדיין לא אושרו ואחרי זה מעבירים אותם לטבלת היוזרים הרגילים

WCMS 12-04-08 05:17

בכללי, אתה שולח לו נגיד rand ואז אתה עושה מזה MD5 ומכניס למסד לאותו משתמש.
וכותב status = 0,
ואז בודק אם זה קיים ואמיתי.
אם כן אתה עושה status = 1.
מקווה שהבנת.

Kfir.G 12-04-08 09:50

ציטוט:

נכתב במקור על ידי SlipY (פרסם 623034)
אהלן,
עניין אותי לדעת איך עובד עיקרון אישור ההרשמה
הרי בעת ההרשמה יוצרים איזשהוא משפט רנדומלי
שנשלח למשתמש באימייל עם קישור

אז בעצם צריך לשמור במסד של המשתמש גם את משפט האישור וגם האם הוא עבר אישור או לא ?
או שיוצרים טבלה למשתמשים שעדיין לא אושרו ואחרי זה מעבירים אותם לטבלת היוזרים הרגילים

זה תלוי באתר שאתה בונה. אם אתה לא צופה הרבה משתמשים (נגיד יותר מ10000) אז עדיף לעשות פשוט תא נוסף בטבלת המשתמשים. hash - יכיל את הקוד הרנדומלי של האישור לאותו משתמש. אחרי שהמשתמש אושר אתה פשוט מחליף את התוכן של hash עבור אותו המשתמש למחרוזת ריקה (""). הבעיה במסדים גדולים היא שגם תא ריק בטבלה תופס מקום. לכן במקרה שתהיה לך מערכת שאמורה להחזיק הרבה משתמשים עדיף לעשות טבלה נפרדת עבור משתמשים שלא אושרו כדי לחסוך בגודל המסד.
מקווה שעזרתי :)

בכל מקרה עדיף מחרוזת רנדומלית באורך גדול ככל האפשר כדי לוודא שקוד הHASH לא יופיע שוב.. אני אישית בד"כ עושה מחרוזת של 30 תווים רנדומלים :)

daMn 12-04-08 13:28

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

Tomer 12-04-08 13:32

ציטוט:

נכתב במקור על ידי Kfir.G | WebPower.co.il (פרסם 623054)
בכל מקרה עדיף מחרוזת רנדומלית באורך גדול ככל האפשר כדי לוודא שקוד הHASH לא יופיע שוב.. אני אישית בד"כ עושה מחרוזת של 30 תווים רנדומלים :)

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

Kfir.G 12-04-08 14:32

ציטוט:

נכתב במקור על ידי Tomer (פרסם 623098)
גם אם כן,
אני לא חושב שזה משנה כלכך. אתה מאמת בעזרת הכתובת Email והקוד Hash שנוצר,
לא רק ע"י קוד ה Hash.

אפשר.. אפשר גם על ידי הכנסת הסיסמה שהוא הכניס בזמן ההרשמה... יש הרבה דרכים...
בכל מקרה ייתכן באמת שמחרוזת Hash קצרה יותר עדיפה שכן זה חוסך זיכרון במסד אבל מה קורה אם הHash שלך קצר מידי ומכניסים אימייל של משתמש שעדיין לא אושר? הסיכוי לפריצה פה הוא גדול יותר =\ הכל תלוי בשאלה של כמה אתה רוצה לאבטח את ההרשמה ובכמה משאבים אתה יכול להשתמש בשביל זה :)

Tomer 12-04-08 15:03

ציטוט:

נכתב במקור על ידי Kfir.G | WebPower.co.il (פרסם 623108)
אפשר.. אפשר גם על ידי הכנסת הסיסמה שהוא הכניס בזמן ההרשמה... יש הרבה דרכים...
בכל מקרה ייתכן באמת שמחרוזת Hash קצרה יותר עדיפה שכן זה חוסך זיכרון במסד אבל מה קורה אם הHash שלך קצר מידי ומכניסים אימייל של משתמש שעדיין לא אושר? הסיכוי לפריצה פה הוא גדול יותר =\ הכל תלוי בשאלה של כמה אתה רוצה לאבטח את ההרשמה ובכמה משאבים אתה יכול להשתמש בשביל זה :)

דיברתי יותר על העניין של הראנדומליות. לגבי האורך, לא חושב שזה משנה יותר מדי.

RS324 12-04-08 15:41

ציטוט:

נכתב במקור על ידי Kfir.G | WebPower.co.il (פרסם 623108)
אפשר.. אפשר גם על ידי הכנסת הסיסמה שהוא הכניס בזמן ההרשמה... יש הרבה דרכים...
בכל מקרה ייתכן באמת שמחרוזת Hash קצרה יותר עדיפה שכן זה חוסך זיכרון במסד אבל מה קורה אם הHash שלך קצר מידי ומכניסים אימייל של משתמש שעדיין לא אושר? הסיכוי לפריצה פה הוא גדול יותר =\ הכל תלוי בשאלה של כמה אתה רוצה לאבטח את ההרשמה ובכמה משאבים אתה יכול להשתמש בשביל זה :)

הסיכוי שתנחש אימייל ומספר ראנדומלי ותצליח שואף ל 0

Kfir.G 12-04-08 16:03

ציטוט:

נכתב במקור על ידי RS324 (פרסם 623135)
הסיכוי שתנחש אימייל ומספר ראנדומלי ותצליח שואף ל 0

תנחש אתה כן אבל למחשב להריץ את כל הצירופים האפשריים שיש בHash שלך יש סיכוי לא רע בכלל לעלות על זה... אפשר לעשות את זה די בקלות עם PHP.. ככל שהמחרוזת הרנדומלית ארוכה יותר יש יותר אפשרויות ויקח יותר זמן להגיע לביטוי המדוייק. חוץ מזה שדיברתי על מקרה שהאימייל ידוע והHash לא ידוע...

ציטוט:

נכתב במקור על ידי Tomer (פרסם 623118)
דיברתי יותר על העניין של הראנדומליות. לגבי האורך, לא חושב שזה משנה יותר מדי.

בוודאי שזה משנה... ככל שיש לך יותר אפשרויות לתווים ויותר תווים במחרוזת יש יותר אפשרויות למחרוזות אפשריות. אם זה מעניין אותך אני אתן לך את הנוסחא לחישוב האפשרויות אבל אני לא חושב שיש בזה צורך :)

luckyguy 12-04-08 16:38

ציטוט:

נכתב במקור על ידי Kfir.G | WebPower.co.il (פרסם 623140)
תנחש אתה כן אבל למחשב להריץ את כל הצירופים האפשריים שיש בHash שלך יש סיכוי לא רע בכלל לעלות על זה... אפשר לעשות את זה די בקלות עם PHP.. ככל שהמחרוזת הרנדומלית ארוכה יותר יש יותר אפשרויות ויקח יותר זמן להגיע לביטוי המדוייק. חוץ מזה שדיברתי על מקרה שהאימייל ידוע והHash לא ידוע...



בוודאי שזה משנה... ככל שיש לך יותר אפשרויות לתווים ויותר תווים במחרוזת יש יותר אפשרויות למחרוזות אפשריות. אם זה מעניין אותך אני אתן לך את הנוסחא לחישוב האפשרויות אבל אני לא חושב שיש בזה צורך :)

טוב שלא עשית מזה פריצה לפנטגון..
אם כלכך חשוב לך "לדפוק" את המערכת ולבזבז 3 ימים ויותר על פריצהבמקום להירשם 2 דקות..לך על זה

Kfir.G 12-04-08 17:06

ציטוט:

נכתב במקור על ידי luckyguy (פרסם 623150)
טוב שלא עשית מזה פריצה לפנטגון..
אם כלכך חשוב לך "לדפוק" את המערכת ולבזבז 3 ימים ויותר על פריצהבמקום להירשם 2 דקות..לך על זה

לא יודע איך זה עובד במחשב שלך או לחילופין בשרת שאתה עובד בו אבל המחשב שלי הציג לי את כל האופציות הקיימות ב50 תווים בפחות מעשר שניות (בדקתי את זה מתוך עניין פעם :P) ולגבי הפריצה עם הHash פשוט עושים curl ומשנים את הערך שמועבר בpost...

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

SlipY 12-04-08 20:59

ציטוט:

נכתב במקור על ידי Kfir.G | WebPower.co.il (פרסם 623162)
לא יודע איך זה עובד במחשב שלך או לחילופין בשרת שאתה עובד בו אבל המחשב שלי הציג לי את כל האופציות הקיימות ב50 תווים בפחות מעשר שניות (בדקתי את זה מתוך עניין פעם :P) ולגבי הפריצה עם הHash פשוט עושים curl ומשנים את הערך שמועבר בpost...

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

האמת שכותב האשכול מתעניין לדעת אם ה50 תווים זה מילים בלבד או תווים ומספרים ?


אבל בחזרה לנושא, מעולם לא התעסקתי בrandomize איך אני יוצר מילה של 15 תווים רנדומלית ?

DanielS 12-04-08 21:08

ציטוט:

נכתב במקור על ידי SlipY (פרסם 623260)
האמת שכותב האשכול מתעניין לדעת אם ה50 תווים זה מילים בלבד או תווים ומספרים ?


אבל בחזרה לנושא, מעולם לא התעסקתי בrandomize איך אני יוצר מילה של 15 תווים רנדומלית ?

אפשרי לערבב מה שאתה רוצה עם הפונקציה : str_shuffle

דוגמא לעירבוב של מספר תווים שיוציא מחרוזת עם 15 תווים מבולבלים.:
PHP קוד:

<?php

$rand_string 
str_shuffle("0123456789אבגדהו");
$rand_string substr($rand_string015);
echo 
$rand_string;
?>


Kfir.G 12-04-08 21:37

ציטוט:

נכתב במקור על ידי DanielS (פרסם 623266)
אפשרי לערבב מה שאתה רוצה עם הפונקציה : str_shuffle

דוגמא לעירבוב של מספר תווים שיוציא מחרוזת עם 15 תווים מבולבלים.:
PHP קוד:

<?php

$rand_string 
str_shuffle("0123456789אבגדהו");
$rand_string substr($rand_string015);
echo 
$rand_string;
?>


דניאל str_shuffle בסה"כ משנה את את הסדר של התווים במחרוזת והיא לא ממש מתאימה...

ציטוט:

נכתב במקור על ידי SlipY (פרסם 623260)
האמת שכותב האשכול מתעניין לדעת אם ה50 תווים זה מילים בלבד או תווים ומספרים ?


אבל בחזרה לנושא, מעולם לא התעסקתי בrandomize איך אני יוצר מילה של 15 תווים רנדומלית ?

ב50 תווים אתה יכול לשים איזה תווים שאתה רוצה... אני אישית מעדיף רק סמלים של יצרו לי בעיה כלשהי במסד (סימנים מרגיזים כמו '," ושאר הירקות). עכשיו בנוגע לחמישים יש על זה משפט נחמד באנגלית The more the merrier. הדבר היחידי שזה משנה זה המקום במסד ככה שתחליט כמה אתה רוצה בהתחשב בגודל המסד... אני אישית (כמו שכבר אמרתי) עושה עם 30 תווים רנדומלים... עכשיו הנה הפונקציה שאני משתמש בה בשביל תווים רנדומלים.

PHP קוד:

    function randText($len){
        
$str    "";
        
$chars    = array ('a','b','c','d','e','f','g','h',
                         
'i','j','k','l','m','n','o','p'
                         
,'q','r','s','v','u','t','w','x',
                         
'y','z','1','2','3','4','5','6',
                         
'7','8','9','0');
        
$max count($chars) - 1;
        while(
$len 0){
            
$len--;
            
$str .= $chars[mt_rand(0,$max)];
        }
        return 
$str;
    } 


הערה:
הפונקציה mt_rand היא שיפור של הפונקציה rand ולכן תמיד עדיף להשתמש בה.

מקווה שעזרתי לך :)

SlipY 12-04-08 21:40

ציטוט:

נכתב במקור על ידי DanielS (פרסם 623266)
אפשרי לערבב מה שאתה רוצה עם הפונקציה : str_shuffle

דוגמא לעירבוב של מספר תווים שיוציא מחרוזת עם 15 תווים מבולבלים.:
PHP קוד:

<?php

$rand_string 
str_shuffle("0123456789אבגדהו");
$rand_string substr($rand_string015);
echo 
$rand_string;
?>


תודה רבה :)

Tomer 13-04-08 13:09

אני מבין שהעניין טופל.

ההודעה ננעלת.


כל הזמנים הם GMT +2. הזמן כעת הוא 00:36.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ