![]() |
התחברות בעזרת אייפי,מה דעתכם?
חשבתי על רעיון לעשות התחברות שבמקום לשמור עוגיות בודקים קוקיז.
זה הולך ככה: כאשר משתמש מתחבר זה מאמת את הפרטים שלו ובמידה והם נכונים הוא מכניס לטבלה של משתמשים שהתחברו את האייפי של המשתמש שהתחבר ואת האיידי של המשתמש שאליו התחבר ובנוסף קוד ראנדומאלי שנשמר על קוקיז. ואז כאשר המשתמש נכנס לאתר בודקים אם קיימת שורה במסד שמכילה את האייפי שלו ובמידה וקיימת היא שולפת את הקוד שנשמר במסד ומאמתת אותו עם הקוקיז על המחשב. במידה והם תואמים בודקים את האיידי ולפי האיידי יודעים לאיזה משתמש הוא מחובר ואם הקודים לא תואמים מוחקים את השורה מהמסד. מה דעתכם? היתרון בזה שלא ניתן לעשות עריכת קוקיז ולפרוץ למשתמשים אבל החסרון זה שאם יש הרבה משתמשים שהתחברו זה מעמיס על האתר אבל אפשר למצוא לזה כמה פתרונות האם יש איזושהיא בעיית אבטחה עם זה? אשמח לשמוע את דעתכם|קורץ| |
ציטוט:
דוגמא:המשתמש TEST נכנס עם האיפי 123.123.123.123 לאחר כמה זמן "הפעיל מחדש" את האינטרנט והאייפי שלו הוחלף האייפי הקודם שלו הועבר למשתמש X שבמידה והוא נכנס לפאנל שלך הוא יתחבר כמשתמש TEST |
הדרך הטובה ביותר היא לבצע MD5 על הסיסמא ביחד עם המספר של המשתמש שהתחבר ולשמור בעמודה במסד ובאותו זמן בעוגיה ואז כל הזמן לאמת את זה דרך העוגיה אם קיימת מול העמודה במסד.
|
ציטוט:
ציטוט:
צריך עוד קוקיז? |
מה שאתה מציע זה כמו לעשות לוגין בGET
אתה פשוט מקמבן כל מיני משתנים (ID+USER+PASS+SALTER+SALTER2) לתוך איזה UNIQUE STRING את הסטרינג הזה אתה מזרים בכתובת בכל עמוד שבו הוא גולש בכל עמוד אתה מפענח אותה ומוציא ממנה את הסיסמא יוזר וכו' אבל גם לזה יש חסרון (מלבד העובדה שזה עמיד בדפדפנים שונאי קוקיז וכו') - המשתמש העתיק לינק שלח לחבר שלו ובום חבר שלו ביוזר שלו בהצלחה |
ציטוט:
למשתמש זה לא משנה כי הוא לא יודע איך המתכנת גורם לזה שהוא יהיה מחובר לאתר ולו זה יראה כמו כל התחברות אחרת אבל אני בודק אם הוא מחובר לפי האייפי שלו,מסד נתונים שיכיל מידע שאוומר שהוא התחבר,וגם קוקיז עם קוד אימות שמופיע גם במסד שמוכיח שזה הוא וזה לא משהו אחר שקיבל את האייפי שלו. ככה זה בערך כמו סשיין רק שלא נמחק ביציאה מהדפדפן |
ציטוט:
|
ציטוט:
אבל תמיד אפשר להוסיף כמה דברים ולסדר את הבעיה הזאת |
שאלה:למה אתה צריך אבטחה כזו מסורבלת שלא בטוח תועיל במשהו?
אם יש סיכוי שהIP שלו משתנה,אז התיחסות לIP בהתחברות זה דבר מיותר. ואם זו מערכת ממש אבל ממש קריטית אז אפשר לעשות שהוא יעדכן את הIP שלו בFTP או את השם משתמש והסיסמא ואז יתחבר. או לעשות משהו שרץ על המחשב שלו ועושה את זה. או לעשות שאפשר להתחבר רק מVPN או כל מיני דברים אם מדובר במשהו שאמור להיות ממש מאובטח. |
ציטוט:
אבל אני לא ממש יודע לאבטח התחברות בקוקיז אז ניסיתי לחשוב על דרך אחרת וזה מה שעלה לי בראש |
מיותר..
אם מימלא תצטרך לבדוק קוקיז אז מה הקטע? תבדוק רק קוקיז(בהצפנה...) אם אתה מפחד שזה זמין(למרות שזה בהצפנה) תעבוד עם סיישן. או שילוב של שניהם. לא צריך יותר מזה למה שביקשת(אפשר עוד בעזרת תוכנה שתיהיה במחשב + ההתחברות שרק ככה זה יעבוד(את נותן ללקוח תוכנה מסויימת עם פרטים של הלקוח, כאשר הוא מתחבר היא תיהיה דרך התוכנה בלבד(שאמרוה להיות מאור אישית...) ורק הפרטים + שילוב התוכנה יאפשרו כניסה + אימות..) |
בת'כלס, זה בעיה, כי יש המון אנשים שה-IP שלהם משתנה והרבה.
לדוגמא אצלי, כל התנתקות והתחברות מהאינטרנט גורמת לשינוי של הכתובת IP.. ולכן זה לא הכי שימושי וטוב, יש יותר אנשים (המון מאוד) שהכתובת IP שלהם משתנה, ותחשוב כשאתה עושה ריסטרט / מכבה את המחשב / מתנתק לך האינטרנט / אתה מתנתק בכוונה - זה לא יהיה שימושי לגבי כל אותם האנשים האלו, בכל פעם הם יצטרכו להתחבר שוב מחדש ! אגב זה קצת לא הגיוני, אבל תחשוב שאם אני מתנתק מהאינטרנט והכתובת IP שלי עוברת למישהו אחר שהוא גם נכנס לאתר שלך, אז הוא יהיה במשתמש שלי.. |
אביחי:אם אני משתמש בסשיין אז זה יתנתק כל פעם שהוא ייצא מהאתר וזה בעיה
שילוב של שניהם נשמע רעיון טוב ואני ינסה לעשות משהו כזה. שניר:כבר אמרתי את זה כמה פעמים,מוסיפים אימות עם קוקיז לבדוק אם זה המשתמש שהתחבר. ובקשר לשינוי אייפי,אנשים נורמליים מתנתקים פעם בכמה שעות ולא כל 5 דקות ככה שזה לא ממש מפריע וזה עדיף על סשיין |
ציטוט:
לידיעתך אפשר לערוך גם Sessions... יש לי תוסף בFF, אפשר לערוך דרכו קוקיס וסיישנים |
אשמח שתביא לי אותו
לפי מה שידוע לי מה שאתה כן יכול לשנות זה את session id שנשמר אצלך. הסיישן עצמו שמור על השרת. ארז - הסיישן עצמו נשמר לתקופה מוגבלת שאתה בוחר(הברירת מחדל קבועה בקובץ ההגדרות של PHP) ומה שימחק זה הקוקיז שגם נקבע על ידך. {וכן כמו שאמרו במקרה הקיצוני הIP יכול להתחלף בין משתמשים...) |
ציטוט:
שים לב בתיאור: ציטוט:
|
לדעתי הדבר הכי חכם לעשות זה כזה דבר:
בטבלת המשתמשים אתה מוסיף תא שקוראים לו login_hash כשמשתמש מתחבר בפעם הראשונה,אתה יוצר ערך רנדומאלי,שומר אותו בlogin_hash ומכניס למשתמש אותו בעוגיה. ואיתו אתה מזהה אם המשתמש מחובר ואיזה משתמש זה. אם המשתמש מתנתק,אתה מרוקן את התא login_hash במסד נתונים ואם הוא יתחבר שוב תיצור כזה חדש וכן הלאה. מה שזה נותן זה שאם מישהו מתנתק במקום אחד,זה מנתק אותו בכל מקום שהוא מחובר. וגם אם מישהו גנב את העוגיה שלו,ברגע שהוא מתנתק העוגיה הופכת להיות חסרת ערך. |
ציטוט:
תחשוב מישהו יודע את השם משתמש וסיסמא שלך, ברגע שהוא התחבר, זה יוצא מזהה LOGIN_HASH חדש, ואז אותו משתמש אמיתי שמחובר כבר זה מנתק אותו.. |
ציטוט:
תודה לך |
ציטוט:
ואם מישהו כבר גילה את השם משתמש והסיסמא שלך ז"א החשבון שלך כבר נפרץ לגמרי. מה שאנחנו מנסים לאבטח פה בצורה מקסימלית זה את העוגיות. אם מישהו ישיג את השם משתמש והסיסמא בצורה אחרת זה כבר בעיה אחרת. |
ציטוט:
אז כל שניה הם יתנתקו ויתחברו שוב ושוב... צריך לפתור גם את זה |
ציטוט:
לדעתי הדבר הכי חכם לעשות זה כזה דבר: בטבלת המשתמשים אתה מוסיף תא שקוראים לו login_hash כשמשתמש מתחבר בפעם הראשונה,אתה יוצר ערך רנדומאלי,שומר אותו בlogin_hash ומכניס למשתמש אותו בעוגיה. ואיתו אתה מזהה אם המשתמש מחובר ואיזה משתמש זה. אם המשתמש מתחבר שוב,אתה שולף את הערך הזה ומכניס לו לעוגיה. אם המשתמש מתנתק,אתה מרוקן את התא login_hash במסד נתונים ואם הוא יתחבר שוב תיצור כזה חדש וכן הלאה. מה שזה נותן זה שאם מישהו מתנתק במקום אחד,זה מנתק אותו בכל מקום שהוא מחובר. וגם אם מישהו גנב את העוגיה שלו,ברגע שהוא מתנתק העוגיה הופכת להיות חסרת ערך. |
עכשיו זה טוב
תודה על הרעיון :) |
כל הזמנים הם GMT +2. הזמן כעת הוא 01:49. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ