![]() |
שיטת ההתחברות הטובה ביותר ?
שלום.
אהההההם אני עובד קצת על שיפור המערכת שלי...במקור היה שימוש בעוגיות כשהתחברו למערכת...עכשיו מטעמי אבטחה וחוזר יעילות החלטתי שעדיף להשתמש בSESSION...אבל אז חשבתי...שאני רוצה להשאיר את המשתמש מחובר....אז חשבתי על שימוש בIP של המשתמש.... יש רעיונות למשהו כיצד לעשות את זה? אני חשבתי על משהו כזה: המשתמש מכניס פרטים ולוחץ על ההתחברות...ההתחברות בוצעה בהצלחה והכל....עכשיו אני לוקח את הIP לתוך משתנה...לוקח את תאריך היום לתוך משתנה...ואת הID של המשתמש שהתחבר עליו... עכשיו בשאר העמודים ששמורים למשתמשים אני עושה בדיקה אם הוא מחובר בצורה כזאת: לוקח את הIP של המשתמש...בודק במסד אם יש כזה IP...אם כן אז אני לוקח את הID של המשתמש ומשתמש בו...במקום לאחסן אותו בעוגיה (ככה זה היה במקור)... בנוגע להתנתקות...הIP של המשתמש נמחק מהמסד וכך הוא לא מחובר יותר.... ובכן...האם הדרך שלי טובה? האם יש לכם רעיונות לשיפור הדרך? / רעיון יעיל יותר? תודה מראש |כן| |
קודם כל עוגיות, זה ממש לא לא מבוטח\יעיל.
והקטע של הIP, הIP כל הזמן מתחלף... אז יש סיכוי גדול שמישהו יקבל גישה לחשבון של מישהו אחר\ יצטרך להתחבר כל הזמן מחדש |
ציטוט:
|
SESSION לאתר גדול (אמרת מערכת) זה לא טוב
תשתמש בעוגיות שימוש ב IP יעשה צרות |
ציטוט:
|
חחחח, מי שמבטל עוגיות בעיה שלו, ובינינו, מקסימום אחוז אחד מהגולשים מבטלים עוגיות אז..
|
ציטוט:
|
אני בזמן האחרון התחלתי להשתמש בSESSION
זה טוב, ואתה יכול לקחת את תשעה ועשות בכל דף פונקציה(היא אחת אבל מופעלת בכל דף) שבודקת עם עברו 12 שעות אז זה מנתק ומחבר מחדש |
אני עושה ככה
SESSION אפשרות בהתחברות בשם זכור אותי מסמנים, כיף להם, אני מכין עמוד לכאלה שאין להם תמיכה בעוגיות ומפנה אליו לכאלה שסימנו ואין להם תמיכה ולכאלה שיש, אני מכין עוגיה ששומרת את המידע מוצפן, ובודק אותו בהתחברות. אם לא בחרת, לא יזכור אותך. 20 דקות? בעיה שלך, תתחבר כל פעם מחדש. שימוש בIP זו שטות לשמה. זה אומר שבמחשב הזה ובמחשב שלי יהיה אותו משתמש (זה המחשב של אח שלי). ואם אח שלי יכנס לאתר וישנה הגדרות?.. אני ממליץ לך על סשן שמסתמך על החיבור ועל העוגיות אם הוגדר. |
ציטוט:
אההההם...יש איזה פונקציה שבודקת אם המשתמש ניטרל עוגיות? [PHP] |
פשוט, כמו שאמר עומר, עוגיות וסשן, לדוגמא, עכשיו במערכת הCMS החדשה שלי, בניתי מודול להתחברות, ושמה פשוט יש כפתור "זכור אותי", אם המשתמש לא בחר את התיבה, הוא יתחבר בעזרת סשן, וכמו ההגדרה של סשן, לאחר סגירת הדפדפן, הסשן ימחק, והמשתמש יתנתק =]
|
ציטוט:
אני חשבתי על משהו בסגנון: מאחר ואני שומר את הID של המשתמש שעליו הוא התחבר בעוגיה....אז כדי שלא יוכלו לערוך את העוגיה ולהערוך שם את הID...אז להצפין את הID בעזרת הצפנה דו כיוונית....עכשיו...אהההההם... עכשיו...יש את הסיכון שהעוגיות יגנבו...כיצד ניתן למנוע זאת...כאילו שימוש בעוגיות גנובות... |
ציטוט:
כי אם כן, תריץ פונקציה פשוט, שתתאים את העוגייה של הID לעוגייה של הסיסמא.. |
סתכל....בגרסא הקודמת של המערכת שלי הID של המשתמש נשמר בעוגיה
כלומר מי שרוצה...נכנס לעוגיה...עורך את המספר...והופה הוא מחובר כמשתמש אחר עכשיו אני רוצה שמי שינסה לערוך לא יצליח...אז החלטתי להצפין את הID בהצפנות דו כיווניות עכשיו... יש את הסיכון שיפרצו למחשב של משהו ויקחו משם את העוגיות....ואז אותו פורץ יוכל להתחבר למערכת בעזרת העוגיות שהוא גנב....וככה הוא יהיה מוחובר למשתמש של אותו אדם...אני רוצה למנוע שימוש בעוגיות ממחשב אחר....כיצד? |
אממ.... את האמת, אין לי מושג, אבל שוב, מקרה כזה יקרה פעם בהרבה זמן, אם הוא יקרה בכלל =]
|
ציטוט:
|
"פונקציה"?
תכין. PHP קוד:
|
ציטוט:
|
ציטוט:
ואף פעם לא שומרים רק נתון אחד בעוגיה לביצוע אימות, אלא תמיד שומרים שניים או יותר. ואני לא מבין את הבעיה בין לבחור SESSION או COOKIE, המטרות שלהם שונות בתכלית. |
ציטוט:
דבר שני...אאההההם...המטרות דומות...עכשיו בזכות האף הכחול (עומר) יש לי עכשיו דרך מעולה..אני לא יספר עליה...מטעמי מבטיחות ;P אבל זה קשור בבדיקה אם המשתמש כיבה עוגיות :D ובכן....אני ישמח אם תענו לי בקשר לXSS...בקשר לשאר, הכל פתור :D |
ציטוט:
ומה זו בדיוק השיטה הכי מאובטחת? |
ציטוט:
|
מה שאני בדרך כלל עושה זה שילוב של סישן ועוגיות אבל בצורה שהבדיקה נבדקת אך ורק מהסישן.
הסבר על שיטת העבודה: יצירת דף אימות שיעשה את כל הפועולות של הבדיקה, הדף הזה יוכנס בכל חלק עליון של כל דף אחר. מה שעושים בקובץ זה מאמתים רק דרך סישן, בכל כניסה לדף מסויים מתבצעת בדיקה האם קיים סישן, אם קיים מבוצע אימות של הפרטים בסישן ביחד עם הפרטים במסד, אם עבר בהצלחה בודק אם יש עוגיות ואם אין יוצר אותם (עוגיות עם שם משתמש וסיסמה כמובן) לאחר מיכן נותן לו לראות את שאר הדף. במידה ולא קיים סישן המערכת בודקת עם קיימת עוגיה, את העוגיה המערכת הופכת לסישן ומרעננת את הדף. במידה ולא קיים לא סישן ולא עוגיה נשלח בקשה להכנסת שם משתמש וסיסמה, אם אומתו נכון נוצר סישן ועוגייה והדף מרופרש. זאת שיטה מאובטחת, שיהיה בהצלחה. |
דבר ראשון, אני לא משתמש ב SESSION המובנה ב PHP, אני משתמש במערכת נפרדת שבניתי של SESSION ב DB שבעזרתה אפשר לנטר גם פעילות במערכת ועוד כמה דברים (כמו כמה משתמשים מחוברים עכשיו ?)
בכל מקרה, אני שומר כזה דבר ב SESSION : useragent userip loggedin lastvisit userid sessionid אני מגדיר בכל מערכת SESSION_TIMEOUT שאני רוצה לדוגמא 3600 - שעה וגם אני מגדיר בכל מערכת COOKIE_SECURITY_SALT ואז על העוגיה אני שומר USERID וסיסמא, כאשר את הסיסמא (שהיא גם ככה מוצפנת) עוברת הצפנה נוספת והפעם בתופסת של התווים שהגדרתי בקבצי מערכת. לדוגמא : securitycode = o21ki399fd3r3n4pls;ldk0e3`dfdl עכשיו אני לוקח את הסיסמא ועושה md5($securitycode.$password.$securitycode) עכשיו ה SESSION VALID לשעה בערך ואז כשאני בודק את הCOOKIE אני משווה אותו מול ה DB כל פעם כמובן שלהצפנה יש אין סוף אפשרויות, ואז כשאני בודק את המשתמש ואז אני בודק את האיפי,את הדפדפן,את העוגיות ואת הכל מול המסד נתונים אם השתנה לו האיפי תוך שעה ? אז שיתחבר מחדש - לפעמים יש אפשרות שהוא מזהה את הכל נכון ומעדכן את SESSION עם האיפי החדש. בכל מקרה אני מגדיר את ה TIMEOUT לשעה ככה שזה לא קריטי לי קיצר יש לי מערכת בת-*** לזה, ורק 2 שאילתות לדף בכל |
כל הזמנים הם GMT +2. הזמן כעת הוא 17:23. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ