עוגיית ווב אני מגדיר כסטרינג המורכב מתו אחד או יותר, המשמש לאיסוף מידע על משתמש אנושי או תוכנתי באתר ווב.
סטרינג העוגייה נשמר בזיכרון מידע במערכת מחשב ← בדפדפן ווב ואו בשרת ווב שמתקשר איתו, אחרי שימוש באתר ווב ←← זאת לצורך גלישה בכל אתר ווב כזה בצורה יעילה יותר כביכול.
היסטוריה
עוגיית הווב הראשונה שומשה בגרסת בטא של דפדפן Netscape בשנת 1994.
מטרת השימוש בעוגיות ווב
עוגיות מפותחות להיות מנגנון עקבי לשמירת מידע מצבי כמו מצב התחברות לחשבון משתמש (עוגיות אותנטיקציה) או מצב עגלת קניות באתר קניות אונליין (עוגיות קניות אונליין) וכן כדי לאסוף ידע על תחומי עניין של גולש בפרק זמן נתון (עוגיות מעקב) כל עוד עוגייה לא נמחקה ובמקרים בעייתיים או לחלופין שנויים במחלוקת הם יכולים לשמש לאיסוף סיסמאות וצורות תשלום.
היווצרות עוגיות ווב
בכל פעם שדפדפן ווב מבקש משאב משרת ווב, לפחות הדר (header) אחד יישלח ויכלול תיאור למידע המתבקש.
שרת ווב ישיב לבקשה עם לפחות הדר אחד בתגובה.
הדר העוגייה (Cookie HHTP header) יכולות להישלח מדפדפן ווב לשרת ווב וההפך.
כלל הדפדפנים מאפשרים למשתמש אם לשמור עוגיות או לא (בצורה טוטאלית) אך מניסיוני, אי שימוש בעוגיות יגרום לרוב האתרים פשוט לא לעבוד או לעבוד בצורה חלקית ביותר.
הגבלת כמות עוגיות לשימוש
באופן כללי מפתחיי דפדפדנים לא מגבילים את כמות העוגיות שהדפדפן יכול להכיל אך ייתכן ולשרת תהיה מגבלה של כמה עוגיות הוא יכול להכיל.
הגבלת איכות עוגיות לשימוש
ניתן להגביל עוגיות לפי דומיין, סאב דומיין, ואפילו domain path או URL ספציפי.
יצירת עוגייה
ניתן ליצור עוגייה למשל כך בקונסולה של דפדפן ווב:
document.cookie = "name=Ben";
אם נרצה להגביל את כמות הזמן בה העוגייה מתקיימת נוכל לעשות:
document.cookie = "name=Ben; expires=Fri, 31 Dec, 2114 23:59:59 GMT; domain=subdomain.example.com";
אם לא נגדיר עוגייה כך עוגיות יווצרו בכל דף הקשור בדומיין ווב שהגדרנו וייתקיימו עוד סוף השימוש הנוכחי בדפדפן, כלומר עד סגירת הדפדפן (עד סוף ה session).
עוגייה היא למעשה סטרינג אשר חלקיו מופרדים באתנחתא, או מה שנקרא סמיקולון (semicolon). ובדרך כלל תוכנן אינו נוח לקריאה מצד בן אדם והוא טכני בעיקרו ומיועד לפיענוח מצד מכונה.
עוגיות אותנטיקציה
מבלי עוגיות אותנטיקציה, תוכנת אתר ווב (כל אתר ווב הוא תוכנה בסופו של דבר) לא תוכל להסיק אם משתמש מכתובת IP מסוימת, ממערכת מחשב מסוימת, ממערכת הפעלה ומדפדפן ווב מסוים כבר התחבר (הזין סיסמה ומידע רגיש דומה) או לא.
אבטחת התחברות עם עוגייה תלויה בגורמים כגון עד כמה אתר ווב מסוים מאובטח, איכות דפדפן הווב בו משתמשים והאם מידע העוגייה מוצפן או לא.
עוגיית מעקב
עקרונית, גם אתרים שאינם האתר שיצר עוגייה בתוך דפדפן ווב (ולא בשרת ווב של האתר עצמו) יכולים להשתמש בה ויש בכך בעיית פרטיות.
עוגיות מעקב הן עוגיות המכילות מידע על נושאים שלגביהם משתמש חיפש מידע באתר הווב שיצר אותן ובעיקר אם הן נשמרות בדפדפן ווב ולא בשרת ווב של האתר שיצר אותן הדבר יכול להוות פגיעה בפרטיות ולגרום לפרשנות לא נכונה של מידע ואף להטרדה כמו הצגת תוכן חוזר בברוטאליות בנושא מסוים גם אם משתמש כבר מצא את מה שחיפש.
בדרך כלל אתרים לא יחלקו מידע עוגיות מעקב עם אתרים אחרים (אלא אם אתרים אלה חולקים רשת אתרים אחת, כגון היותם "תת אתרים" תחת דומיין ווב אחד (פסאודו אתר) או פשוט חולקים בסיס נתונים אחד).
עם זאת, ייתכן מצב בו צוות אנושי של חברה מסוימת ימסור מידע שאסף מעוגיות לצד שלישי (כלומר יוציא אותו מתחומו) וזה בכלל פתח ל-1001 בעיות פרטיות ופרשנות שגויה אפשרית של מגוון סוגי מידע.
חקיקה
עוגיות מעקב הן עוגיות המכילות מידע על נושאים שלגביהם משתמש חיפש מידע באתר הווב שיצר אותן; מה שיכול להוות פגיעה בפרטיות ולגרום לפרשנות לא נכונה של מידע ואף להטרדה (הצגת תוכן חוזר בברוטאליות בנושא מסוים גם אם משתמש כבר מצא את מה שחיפש).
בדרך כלל אתרים לא יחלקו מידע עוגיות מעקב עם אתרים אחרים (אלא אם אתרים אלה חולקים רשת אתרים אחת, כגון היותם "תת אתרים" תחת דומיין ווב אחד (פסאודו אתר) או פשוט חולקים בסיס נתונים אחד). עם זאת, ייתכן מצב בו צוות אנושי של חברה מסוימת ימסור מידע שאסף מעוגיות לצד שלישי (כלומר יוציא אותו מתחומו) וזה בכלל פתח ל-1001 בעיות פרטיות ופרשנות שגויה אפשרית של מגוון סוגי מידע.
עוגיות הן בעיה כאשר מעוניינים לאחסן מידע בצד קליינט (client side)
מבחינת תכנות אתרי ווב בשפת JavaScript, עוגיות הן בעיה כאשר מעוניינים לאחסן מידע בצד קליינט כי הן דורשות תקשורת הלוך ושוב בין הדפדפן לבין שרת ווב, במקום בין הדפדפן לבין מידע שכבר אוחסן בו עצמו.