עוגייה (אינטרנט)

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

תכלית

העוגיות משמשות את שרתי דפי האינטרנט והן מאפשרות להם לזהות את המשתמשים הגולשים באתר, ולאגירת מידע רלוונטי המתייחס למשתמש במהלך ביקורו באתר, ולעיתים גם בביקורים עתידיים. העוגיות הונהגו לראשונה בשנת 1994 כדי לאפשר את השימוש ב"עגלת קניות" (או "סל קניות"), התקן וירטואלי אשר לתוכו יכול המשתמש "לאסוף" פריטים שברצונו לרכוש באתר הקניות. התקן זה מאפשר למשתמש לנווט באתר האינטרנט בצורה חופשית כשבאפשרותו להוסיף ולהסיר פריטים מעגלת הקניות בכל עת.
שימוש נוסף בעוגיות הוא האפשרות להתחבר לחשבון המשתמש באתר. העוגיות מאפשרות לשרת לברר האם המשתמש נרשם בעבר וכך לאפשר לו להירשם בצורה אוטומטית ולאפשר לו גישה לשירותים או פעולות שניתנים רק למשתמשים רשומים. דוגמה נפוצה לכך היא שירות דואר אלקטרוני כגון הוטמייל: לאחר שהמשתמש הזדהה בטופס הכניסה לשירות, נשמרים שם המשתמש שלו וסיסמתו בעוגייה. מרגע זה, גם אם יעבור לאתר אחר ויחזור לשירות הדואר האלקטרוני במועד מאוחר יותר, לא יצטרך להירשם מחדש, שכן באמצעות העוגייה שנוצרה בטופס הכניסה לשירות יזהה השרת את המשתמש באופן מיידי.
מספר אתרי אינטרנט משתמשים בעוגיות למטרת התאמה אישית של תצוגת האתר על פי העדפות המשתמש. אתרים הדורשים אימות מרבים להשתמש בתכונה זו, אולם היא קיימת גם באתרים שאין בהם חובה להזדהות. לדוגמה, אתר האינטרנט ויקיפדיה מאפשר למשתמשים שנרשמו לבחור את תצוגת ממשק המשתמש (Skin) האהוב עליהם. מנוע החיפוש גוגל מאפשר (גם למשתמשים לא רשומים) לבחור כמה תוצאות יוצגו בכל דף.
עוגיות משמשות גם למעקב אחר המשתמש באתר אינטרנט מסוים באמצעות התנהגות הדפדפן. עוגיות צד ג' ו-Web bugs, מאפשרות להתחקות אחר המשתמש גם כאשר הוא עובר בין אתרי אינטרנט שונים. מעקב בתוך אתר יחיד נעשה בדרך כלל לבדיקת סטטיסטיקת השימוש בדפי האתר. מצד שני, מעקב בין אתרים שונים נעשה בדרך כלל על ידי חברות פרסום לפיתוח פרופילים של משתמשים אנונימיים המשמשים להצגת פרסומות על פי פרופיל המשתמש.
השימוש בעוגיות יעיל כאשר המשתמש נוהג לגשת לאתר מסוים רק ממחשב אחד. במצב כזה, במקום להזין מחדש את פרטי ההזדהות, פרטי כרטיס האשראי וכדומה, עליו לעשות זאת פעם אחת בלבד, ומרגע זה יודע הדפדפן לשלוח את המידע לשרת באופן אוטומטי.

אופן המימוש

האתרים השונים (השרתים שלהם) מבצעים אופרציות CRUD (יצירה, קריאה, עדכון ומחיקה) על העוגיות השונות.
מבחינה טכנית, עוגיות הן פיסות מידע בלתי מבוקרות שנוצרות על ידי שרת דפי אינטרנט ואשר נשלחות על ידי הדפדפן. הדפדפן מחזיר אותן מבלי לבצע בהן שינויים על מנת שייצגו אירועים קודמים. כאשר העוגיות אינן מופעלות, כל אחזור של דף אינטרנט או רכיב של דף אינטרנט הוא אירוע בדיד שאינו קשור לשאר התכונות של הדף באותו אתר. על ידי החזרת עוגייה לשרת מספק הדפדפן אמצעי תקשורת בין הדף הנוכחי לדפים קודמים שנצפו. מלבד השרת, מאפשרים גם סקריפטים בצד הלקוח ליצור עוגיות, אם הללו נתמכות וניתנות להפעלה על ידי הדפדפן.
מפרט העוגיות קובע כי על הדפדפנים לתמוך במספר מינימלי של עוגיות או להקצות שטח זיכרון מינימלי לאגירתן. בפרט, דפדפן צריך לאפשר לאגור לפחות 300 עוגיות בגודל 4 קילובייט כל אחת, ולפחות 20 עוגיות לכל שרת או מתחם.
מספר העוגיות המקסימלי משתנה בין דפדפנים. למשל, במוזילה פיירפוקס 2.0 ואינטרנט אקספלורר 8 ניתן לשמור עד חמישים עוגיות לכל שרת ואילו באופרה 9 ניתן לשמור שלושים עוגיות לכל שרת.
בפועל, על עוגיות להיות קטנות מ-4 קילובייט. אינטרנט אקספלורר כופה גודל זה על כל העוגיות שנשמרות במתחם נתון. שמות העוגיות רגישות לרישיות (כלומר, העוגיות "WIKI" ו-"wiki" הן עוגיות שונות).
בעת יצירת עוגייה חדשה ניתן להגדיר תאריך תפוגה בו תימחק העוגייה. אם לא נקבע תאריך תפוגה, העוגייה תימחק לאחר שהמשתמש סגר את הדפדפן (כלומר, בסיום השיחה עם השרת). ציון תאריך מאפשר את קיומה של העוגייה על פני שיחות שונות גם אם הדפדפן נסגר ביניהן. עוגיות אלו נקראות בשם "עוגיות קבועות" (באנגלית: "Persistent Cookies"), להבדיל מ"עוגיות זמניות".

הגדרות הדפדפן

מרבית הדפדפנים המודרניים תומכים בשימוש בעוגיות. עם זאת, המשתמש יכול בדרך כלל לבחור האם לאפשר לדפדפן להשתמש בהן באופן מלא או חלקי, או לאסור את השימוש בהן כליל. חלק מהדפדפנים מאפשרים להפעיל "מצב פרטיות", למשל מצב "גלישה פרטית" בגוגל כרום, אינטרנט אקספלורר גרסה 8 ומעלה ומוזילה פיירפוקס, שבו מותר השימוש בעוגיות כעוגיות זמניות בלבד (כלומר, העוגיות יימחקו בכל מקרה עם סגירת הדפדפן).
ישנם דפדפנים המאפשרים למשתמש לסרוק את העוגיות ולמחוק עוגיות ספציפיות. מרבית הדפדפנים התומכים ב-JavaScript מאפשרים למשתמש גישה לעוגיות באתר שבו הם נמצאים באמצעות המשתנה document.cookie, המכיל בתוכו את כל העוגיות השמורות בדפדפן לאתר האינטרנט הנוכחי.
בדפדפנים ישנים, ניתן לקבל בצורה פשוטה את נתוני העוגיות באמצעות הקלדת הקוד הבא לתוך שורת הכתובת של הדפדפן:
javascript:alert("Cookies: " + document.cookie)
פעולה זו תציג למשתמש הודעה ובה מחרוזת המכילה את כל העוגיות. ישנם דפדפנים הכוללים תוכנת "מנהל עוגיות" המאפשרת לנהל את העוגיות בצורה מסודרת ונוחה.
שרת אינטרנט הפועל במסגרת פרוטוקול P3P מחויב להצהיר על מדיניות הפרטיות שלו המפרטת איזה סוג מידע הוא אוסף ולאיזו מטרה. מדיניות זו כוללת גם גילוי נאות על המידע שנאסף באמצעות עוגיות.

תפיסות מוטעות

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

פרטיות ועוגיות צד ג'

לעוגיות משמעות רבה בהקשר לנושא הפרטיות והאלמוניות באינטרנט. העוגיות נשלחות אך ורק לשרת שיצר אותן או אל שרת אחר תחת אותו מתחם. אולם, דף האינטרנט עשוי לכלול תמונות או רכיבים אחרים שמקורם בשרת של מתחם אחר. עוגיות שנוצרות במהלך האחזור של רכיבים אלו קרויות בשם עוגיות צד ג' (או עוגיות צד שלישי).
חברות פרסום משתמשות בעוגיות צד ג' כדי לעקוב אחר המשתמש בעודו עובר בין האתרים השונים. חברת פרסום עשויה, למשל, לעקוב אחר משתמש שעבר דרך דפי אינטרנט שכוללים תמונות פרסומיות. בעזרת ידע זה עשויה חברת הפרסום לדעת מהן העדפות המשתמש וכך להציג בפניו את הפרסומות שמתאימות לו.
בניית פרופילים של משתמשים נחשבת על ידי רבים כאיום פוטנציאלי על הפרטיות. מסיבה זו הגבילו חלק מהמדינות באמצעות חקיקה את המידע שניתן להשיג באמצעות עוגיות ואת אופן השימוש בעוגיות. ארצות הברית, למשל, קבעה חוקים נוקשים בכל הנוגע ליצירת עוגיות חדשות. חוקים אלו, אשר נקבעו בשנת 2000, נקבעו לאחר שנחשף כי המשרד ליישום המדיניות של הממשל האמריקאי נגד השימוש בסמים (ONDCP) בבית הלבן השתמש בעוגיות כדי לעקוב אחרי משתמשים שצפו בפרסומות נגד השימוש בסמים במטרה לבדוק האם משתמשים אלו נכנסו לאתרים התומכים בשימוש בסמים. דניאל בראנט, פעיל הדוגל בפרטיות המשתמשים באינטרנט, חשף כי ה-CIA שלח עוגיות קבועות למחשבי אזרחים במשך עשר שנים. ב-25 בדצמבר 2005 גילה בראנט כי הסוכנות לביטחון לאומי (ה-NSA) השאירה שתי עוגיות קבועות במחשבי מבקרים בגלל שדרוג תוכנה. לאחר שהנושא פורסם, הם ביטלו מיד את השימוש בהן.
במסגרת מסמך שפרסם האיחוד האירופי בשנת 2002 נקבעה סדרה של הגבלות בנוגע לפרטיות בתחום הטלקומוניקציה. סעיף 5 בפסקה 3 מכתיב כי שמירת מידע (כגון עוגיות) במחשבו של משתמש ייעשה רק אם המשתמש הגדיר כיצד יש להשתמש במידע שנאסף, ולמשתמש ניתנה האפשרות להתנגד לאחסון המידע. עם זאת, הסעיף מציין כי אחסון מידע אשר נחשב להכרחי מסיבות טכניות, פטור מכלל זה. ההנחיה הייתה מיועדת להיכנס לתוקף באוקטובר 2003, אך דיווח מדצמבר 2004 מציין כי הנחיה זו אינה מיושמת בפועל, וכי מספר מדינות (סלובקיה, לטביה, יוון, בלגיה ולוקסמבורג) גם לא יישמו אותה בחוק הלאומי.

חלופות לשימוש בעוגיות

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

כתובת IP

שיטה לא מהימנה למעקב אחרי משתמשים מתבססת על שמירת כתובות ה-IP של מחשבים המבקשים דפים. שיטה זו הייתה אפשרית מאז יצירתו של ה-World Wide Web הואיל והורדת דפים מצריכה מהשרת המחזיק דפים אלו לדעת את כתובת ה-IP או הפרוקסי של המחשב שמריץ את הדפדפן. מסיבה זו, כתובת ה-IP נגישה גם אם השימוש בעוגיות חסומה.
אף על פי כן, כתובות IP אמינות פחות בזיהוי משתמשים לעומת עוגיות מפני שמספר משתמשים יכולים לשתף מחשב אחד או שרת פרוקסי אחד. יתרה מזאת, ניתן להקצות יותר מכתובת IP אחת לכל מחשב בעבודה על שיחות שונות. ניתן לשפר את מהימנות השיטה בעזרת מאפיין נוסף של פרוטוקול HTTP: כאשר דפדפן מבקש דף בעקבות משתמש שלחץ על היפר קישור, הבקשה נשלחת יחד עם כתובת ה-URL של הדף שבו נמצא הקישור. אם השרת שומר כתובות URL אלו, ניתן לעקוב אחר הדפים שנצפו על ידי המשתמש בצורה מדויקת יותר. מעקב מסוג הזה נחשב אמין פחות מהמעקב שמספקות עוגיות מפני שמספר משתמשים יכולים לגשת לאותו דף אינטרנט בעזרת אותו מחשב, נתב, NAT או פרוקסי, ולאחר מכן לגשת לדפים שונים. יתר על כן, שיטה זו מאפשרת מעקב בלבד, והיא אינה יכולה לשמש תחליף לשאר השימושים של עוגיות.
במערכות השמות דגש על האנונימיות, לא ניתן לעקוב אחרי משתמשים באמצעות כתובות IP כלל. דוגמה למערכת כזו היא רשת TOR. במערכות אלו יכול השרת להשתמש במספר כתובות IP במהלך שיחה אחת, כמו גם לאפשר למספר משתמשים להשתמש באותה כתובת IP.
מספר ספקי אינטרנט עיקריים, בהם AOL, מנתבים את כל תנועת האינטרנט דרך מספר קטן של שרתי פרוקסי. כיוון שכך, שיטה זו אינה מעשית.

URL (שאילתה)

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

שדות חבויים

על ידי שימוש בשדות חבויים של טפסים ניתן לשלוח למשתמש נתונים שאינם מוצגים על המסך אולם נשלחים חזרה כחלק מהודעת POST הנשלחת מהמשתמש. לדוגמה:
<FORM METHOD="post" ACTION="/hello.php"><INPUT TYPE="hidden" NAME="sessionID" VALUE="328932ABC232E"></FORM>
יגרום למשלוח הערך 328932ABC232E בשם sessionID כאשר המשתמש יאשר את הטופס, ללא ידיעתו של המשתמש.

תמונות

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