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

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

SmsBanner.net 23-06-07 17:16

ציטוט:

נכתב במקור על ידי LosNir (פרסם 505453)
מה הקשר?

סטרינג רנדאומלי אמרתי.

ומה קורה כשהעוגיה פגה? הנתונים במסד נשארים?

Daniel 23-06-07 17:17

כל התחברות, זה מוחק את כל הסשנס שהם יותר מ-X זמן+אם הסשן פג תוקפו, זה מנתק אותך.

LosNir 23-06-07 17:25

ציטוט:

נכתב במקור על ידי SmsBanner.net (פרסם 505455)
ומה קורה כשהעוגיה פגה? הנתונים במסד נשארים?

cronjob שמוחק שורות שנשארו יותר מהזמן שקבעת.
בשביל זה צריך להוסיף עוד שדה שבו יהיה מתי השורה נוספה.

Daniel 23-06-07 17:27

זה סתם יקח שאילתות מיותרות כל כמה זמן לעשות את זה-ואם האתר לא פעיל?
עדיף בכל התחברות, זה מוחק את כל מה שפג תוקף.

LosNir 23-06-07 17:30

ציטוט:

נכתב במקור על ידי MasterT (פרסם 505462)
זה סתם יקח שאילתות מיותרות כל כמה זמן לעשות את זה-ואם האתר לא פעיל?
עדיף בכל התחברות, זה מוחק את כל מה שפג תוקף.

גם אפשרי.

SmsBanner.net 23-06-07 17:38

אוקי תודה,
ברשותכם אני אנסה לסכם:

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

נשמע טוב :)

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

LosNir 23-06-07 17:48

ציטוט:

נכתב במקור על ידי SmsBanner.net (פרסם 505475)
אוקי תודה,
ברשותכם אני אנסה לסכם:

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

נשמע טוב :)

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

מוסיפים שורה.. למה שיתעדכן?

The Crow 24-06-07 00:52

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

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

בהצלחה גורוש ;)

Eran-s 24-06-07 01:03

ציטוט:

נכתב במקור על ידי The Crow (פרסם 505794)
בהוספה של המשתמש למסד, אתה יוצר מחרוזת רנדומלית כלשהי (רצוי להצפין אותה עם md5)
ובהתחברות של המשתמש אתה בודק אם השם משתמש והסיסמא נכונים, אם כן,
אתה יוצר עוגיה עם הערך של המחרוזת הרנדומלית שיצרת בהרשמה.

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

בהצלחה גורוש ;)

זה מה שבעצם ניר הסביר...

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

Daniel 24-06-07 12:10

ציטוט:

נכתב במקור על ידי Eran-s (פרסם 505799)
זה מה שבעצם ניר הסביר...

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

אפשר להוסיף לזה עוד משתנים רנדומאליים, או משהו כמו:

PHP קוד:

$str $username.substr(0strlen(md5($password) - 16), $password).mt_rand(0,9999);
$str substr(016md5($str)); 

מה דעתכם?


ציטוט:

זה מה שבעצם ניר הסביר...
מהנה להיות עז.


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

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