שלום-להתראות – הצעה לשימוש ב-Service Workers כדי לשפר את ניהול קובצי ה-cookie באינטרנט

William Denniss
Owen Campbell-Moore

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

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

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

אם זו הגישה שבה אתם משתמשים, יש לנו פתרון טכני שיכול לעזור לכם לאמת מחדש באופן אוטומטי את קובץ ה-cookie לאימות ללא מצב. המערכת פועלת באמצעות אסימון משני לטווח ארוך שאפשר להשתמש בו כדי לרענן את קובץ ה-cookie הקיים לאימות לטווח קצר. בעזרת התבנית החדשה של ה-service worker אנחנו יכולים לבצע 'בדיקת כניסה' באופן קבוע באמצעות האסימון לטווח ארוך, לאמת את האימות של המשתמש (לדוגמה, לבדוק אם הוא לא שינה לאחרונה את הסיסמאות שלו או ביטל את הסשן בדרך אחרת) ולהנפיק מחדש קובץ cookie חדש לטווח קצר לאימות.

הצעה מעשית להעברה לסשנים ארוכים ובטוחים באינטרנט

בהמשך, נסביר על טכניקה חדשה שאנחנו מציעים שנקראת 2-Cookie-Handoff‏ (2CH). אנחנו מקווים שהמאמר הזה יעזור לנו לקבל משוב מהקהילה לגבי הגישה הזו, כדי שנוכל לעבוד עם גורמים בתעשייה על תיעוד של שיטות מומלצות לשימוש ב-2CH.

שירותי עובדים הם טכנולוגיה חדשה שנתמכת במספר דפדפנים, כמו Chrome, ‏ Firefox ו-Opera. בקרוב תהיה תמיכה גם ב-Edge. הן מאפשרות לכם ליירט את כל הבקשות מהאתר שלכם לרשת דרך נקודת קוד משותפת בצד הלקוח, בלי לשנות את הדפים הקיימים. כך תוכלו להגדיר 'עובד 2CH' למשתמשים שמחוברים לחשבון, שיכול ליירט את כל בקשות הרשת שהדף שולח ולבצע את החלפת האסימונים בדיוק כמו באפליקציות לנייד.

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

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

רצף העברת 2 קובצי cookie

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

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

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