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

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

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

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

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

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

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

תכלית[עריכת קוד מקור | עריכה]

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

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

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

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

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

אופן המימוש[עריכת קוד מקור | עריכה]

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

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

מפרט העוגיות קובע[2][3] כי על הדפדפנים לתמוך במספר מינימלי של עוגיות או להקצות שטח זיכרון מינימלי לאגירתן. בפרט, דפדפן צריך לאפשר לאגור לפחות 300 עוגיות בגודל 4 קילובייט כל אחת, ולפחות 20 עוגיות לכל שרת או מתחם.

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

בפועל, על עוגיות להיות קטנות מ-4 קילובייט. אינטרנט אקספלורר כופה גודל זה על כל העוגיות שנשמרות במתחם נתון. שמות העוגיות רגישות לרישיות (כלומר, העוגיות "WIKI" ו-"wiki" הן עוגיות שונות).

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

הגדרת עוגייה חדשה[עריכת קוד מקור | עריכה]

בקשות דפי אינטרנט נעשות דרך פרוטוקול HTTP, בעזרת הדפדפן. תחילה, מבלי להתייחס לעוגיות, הדפדפן מבקש דף מהשרת על ידי שליחת טקסט קצר המכונה "HTTP request". לדוגמה, כדי לגשת לדף http://www.w3.org/index.html, הדפדפן שולח לשרת www.w3.org בקשה:

GET /index.html HTTP/1.1
Host: www.w3.org

דפדפן
שרת

השרת משיב ושולח חבילת מידע המכונה "HTTP header". חבילת מידע זו כוללת שורות טקסט המבקשות מהדפדפן ליצור עוגיות (השורה בירוק):

HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value


(תוכן הדף)

דפדפן
שרת

שורת ה-Set-Cookie נשלחת רק כאשר השרת מעוניין ליצור עוגייה. בשורה זו מבקש השרת מהדפדפן לשמור את המחרוזת name=value. אם הדפדפן מתיר את השימוש בעוגיות, הדפדפן ישלח עוגייה זו לשרת בכל פעם שהמשתמש יבקש לעיין בדף חדש. לדוגמה, אם הבקשה הבאה תהיה הדף http://www.w3.org/spec.html, אזי הבקשה הבאה תישלח לשרת www.w3.org:

GET /spec.html HTTP/1.1
Host: www.w3.org
Cookie: name=value
Accept: */*


דפדפן
שרת

גם כאן מדובר בבקשת דף אינטרנט מהשרת. ההבדלים בין בקשה זו לבקשה הקודמת נובעים מהעוגייה שנוצרה בין הבקשות. באופן זה יודע השרת שבקשה זו קשורה לבקשה הקודמת. השרת, בתגובה, ישלח את הדף המבוקש, ואולי גם בקשה ליצירת עוגיות נוספות. שרת יכול לשנות ערך של עוגייה על ידי שליחת שורה חדשה (Set-Cookie: name=newvalue) בתגובה לבקשת דף מהדפדפן. הדפדפן יחליף את הערך הישן בערך החדש. שורת ה-Set-Cookie נוצרת על ידי תוכנית CGI ואילו שרת ה-HTTP שולח את פלט התוכנית לדפדפן. ניתן להגדיר עוגיות גם באמצעות שפת JavaScript ושפות דומות אחרות הרצות באמצעות הדפדפן. ב-JavaScript משמש האובייקט document.cookie למטרה זו. לדוגמה, ההוראה:

document.cookie = "temperature=20"

יוצרת עוגייה חדשה עם השם "temperature" והערך "20".

מאפייני העוגייה[עריכת קוד מקור | עריכה]

דוגמה לתגובה מהשרת של אתר google.com

מלבד השם והערך יכולה העוגייה לכלול גם תאריך תפוגה, נתיב, שם מתחם ומידע לגבי חיבורים מקודדים. על פי RFC 6295[4] יש לכלול גם את מספר הגרסה. שדות אלו מופיעים לאחר השם והערך, והם מופרדים בנקודה ופסיק. לדוגמה, ניתן ליצור עוגייה באמצעות השורה הבאה:

Set-Cookie: name=value; expires=date; path=/; domain=.example.org

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

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

תאריך התפוגה מורה לדפדפן למחוק את העוגייה כאשר תוקף העוגייה פג. אם לא הוגדר תאריך תפוגה, העוגייה תימחק כאשר המשתמש יסגור את הדפדפן. תאריך התפוגה מוגדר בפורמט הבא: Wdy, DD-Mon-YYYY HH:MM:SS GMT. לדוגמה, להלן עוגייה שהוגדרה על ידי שרת HTTP:

Set-Cookie: RMID=732423sdfs721242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net

שם העוגייה הוא RMID וערכה 732423sdfs721242. השרת יכול להשתמש במחרוזת שרירותית בערך העוגייה. השרת יכול לשמור מספר פרמטרים במחרוזת יחידה, כמו למשל a=12&b=abcd&c=32 במקום 732423sdfs721242. הנתיב ושם המתחם, / ו-.example.net בהתאמה, מבקשים מהדפדפן לשלוח עוגייה זו כאשר מבקשים דף שנמצא תחת שם המתחם שצוין.

תפוגה[עריכת קוד מקור | עריכה]

העוגייה לא תישלח לשרת על ידי הדפדפן במצבים הבאים:

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

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

הגדרות הדפדפן[עריכת קוד מקור | עריכה]

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

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

בדפדפנים ישנים[6], ניתן לקבל בצורה פשוטה את נתוני העוגיות באמצעות הקלדת הקוד הבא לתוך שורת הכתובת של הדפדפן:

javascript:alert("Cookies: " + document.cookie)

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

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

תפיסות מוטעות[עריכת קוד מקור | עריכה]

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

פרטיות ועוגיות צד ג'[עריכת קוד מקור | עריכה]

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

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

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

במסגרת מסמך שפרסם האיחוד האירופי בשנת 2002 נקבעה סדרה של הגבלות בנוגע לפרטיות בתחום הטלקומוניקציה. סעיף 5 בפסקה 3 מכתיב כי שמירת מידע (כגון עוגיות) במחשבו של משתמש ייעשה רק אם המשתמש הגדיר כיצד יש להשתמש במידע שנאסף, ולמשתמש ניתנה האפשרות להתנגד לאחסון המידע. עם זאת, הסעיף מציין כי אחסון מידע אשר נחשב להכרחי מסיבות טכניות, פטור מכלל זה[7]. ההנחיה הייתה מיועדת להיכנס לתוקף באוקטובר 2003, אך דיווח מדצמבר 2004 מציין כי הנחיה זו אינה מיושמת בפועל, וכי מספר מדינות (סלובקיה, לטביה, יוון, בלגיה ולוקסמבורג) גם לא יישמו אותה בחוק הלאומי[8].

החסרונות בשימוש בעוגיות[עריכת קוד מקור | עריכה]

מעבר לבעיות הפרטיות, לעוגיות ישנם גם חסרונות טכניים.

מנגנון הזדהות לא מדויק
לכל דפדפן יש אזור אחסון משלו, ולכן אם במחשב נתון יש יותר מדפדפן אחד, ייתכנו מספר עוגיות זהות – אחת עבור כל דפדפן. בנוסף, העוגיות אינן מסוגלות להבדיל בין משתמשים שונים המשתמשים באותו מחשב ודפדפן, ובאותו חשבון משתמש.
גנבת עוגיות
העוגיות נשלחות פעמים רבות במהלך אורך חייהן אל דפדפן המשתמש וחזרה אל השרת. הגישה אל עוגיות אלו אמורה להיות מוגבלת שכן הן עשויות לכלול מידע אישי ורגיש, כגון שם משתמש וסימן המשמש לאימות. גנבת עוגיות מתרחשת כאשר צד לא מורשה מקבל לידיו עוגייה.
ניתן לקרוא את התעבורה ברשת באמצעות מחשבים אחרים שנמצאים באותה רשת מחשבים, גם אם הם אינם מעורבים ישירות בשליחת וקבלת המידע. בתעבורה זו כלולות גם עוגיות שנשלחות לפרוטוקול HTTP. משתמשים במחשבים אלו יכולים לקרוא את המידע העובר ברשת, כולל את העוגיות, באמצעות תוכנות הקרויות רחרחנים. ניתן להתגבר על הבעיה על ידי שימוש ב-URL בפרוטוקול HTTP מאובטח (HTTPS) שמשתמש בפרוטוקול TLS להצפנת קו התקשורת. בעת יצירת עוגייה יכול השרת לציין דגלון אבטחה והדפדפן ישלח את העוגייה רק באמצעות ערוץ המאובטח ב־HTTPS.
דרך נוספת לגנוב עוגיות היא באמצעות שימוש בפרצת XSS הגורמת לדפדפן לשלוח עוגיות לשרתים שאינם אמורים לקבלם. דפדפנים מודרניים מאפשרים לבצע קטעי קוד שאוחזרו מהשרת. אם ניתן לגשת אל העוגייה בעת הרצת הקוד, תוכן העוגייה עלול להישלח אל שרתים שלא אמורים לקבלם. הצפנת העוגיות לפני שליחתן ברשת אינה עוזרת במקרה זה.
התוקפים משתמשים בשיטה זו בעיקר במחשבים המאפשרים שליחת תוכן HTML. התוקפים משלבים מידע בתוכן ה-HTML וכך הם יכולים לקבל עוגיות של משתמשים אחרים. ניתן להשתמש בעוגיות אלו על ידי התחברות לשרת שאמור היה לקבלן מלכתחילה, ולהזדהות בכינוי של המשתמש ממנו נגנבה העוגייה. ניתן למנוע התקפות כאלו באמצעות דגלון HttpOnly – אפשרות הקיימת במערכות מיקרוסופט וחוסמת עוגיות מפני גישה של קוד בצד לקוח. אם תצוגת העמוד מסתמכת על גישה לעוגייה בסקריפט צד לקוח, התצוגה תשתבש.
הרעלת עוגיות
עוגייה אינה אמורה לעבור שינויים לאחר היווצרותה ושליחתה מהשרת לדפדפן. עם זאת, תוקף יכול לשנות את תוכן העוגייה לפני שהיא נשלחת חזרה לשרת. לדוגמה, אם נתונה עוגייה שבה כלול סך הסכום לתשלום עבור הפריטים שהמשתמש מחזיק בעגלת הקניות, שינוי ערך זה יכול לגרום לכך שהמשתמש ישלם סכום שונה מהנדרש. תהליך מסוג זה קרוי בשם "הרעלת עוגיות" (באנגלית: "Cookie Poisoning").
עם זאת, מרבית האתרים שומרים בעוגייה עצמה רק את מזהה השיחה – מספר אקראי שמאפשר לזהות את השיחה של המשתמש בעוד ששאר המידע שמור בשרת עצמו. כך ניתן לסלק את הסכנה מהרעלת עוגיות כמעט לחלוטין.
נגישות
לכל אתר גישה לעוגיות שלו בלבד כך שאתר אחד אינו יכול לערוך עוגיות השייכות לאתר אחר. עם זאת, תוקף יכול לנצל פרצה הקיימת בדפדפנים מסוימים כדי להפר מגבלה זו. הרעיון דומה להרעלת עוגיות, אך התוקף מנצל משתמשים תמימים עם דפדפנים פגיעים, במקום פגיעה באתר עצמו. לעיתים, מטרתו של התוקף ליצור קבעון שיחה (באנגלית: "Session Fixation").
חוסר עקביות אצל השרת והלקוח
השימוש בעוגיות עלול לגרום לחוסר עקביות בין מצב הלקוח ובין המצב ששמור בעוגייה (כלומר, המצב מבחינתו של השרת). אם משתמש מקבל עוגייה ולאחר מכן לוחץ על כפתור "אחורה" של הדפדפן, המצב של הדפדפן יהיה שונה לרוב ממצבו קודם יצירת העוגייה. לדוגמה, אם עגלת קניות באתר קניות מקוון ממומשת באמצעות עוגיות, תוכן עגלת הקניות עשוי לא להשתנות כאשר המשתמש עובר לדף אחר בהיסטוריית הדפדפן: אם משתמש מוסיף פריט לעגלת הקניות ולאחר מכן לוחץ על כפתור "אחורה" של הדפדפן, הפריט אינו מוסר מעגלת הקניות. ייתכן שזוהי לא כוונתו של משתמש שביקש לבטל את פעולת ההוספה. התנהגות זו עלולה להוביל לחוסר מהימנות, בלבול ובאגים.

חלופות לשימוש בעוגיות[עריכת קוד מקור | עריכה]

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

כתובת IP[עריכת קוד מקור | עריכה]

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

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

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

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

URL (שאילתה)[עריכת קוד מקור | עריכה]

בשורת הכתובת ניתן לראות את מחרוזת השאילתה:
title=Main_page&action=raw

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

שדות חבויים[עריכת קוד מקור | עריכה]

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

<FORM METHOD="post" ACTION="/hello.php">
<INPUT TYPE="hidden" NAME="sessionID" VALUE="328932ABC232E">
</FORM>

יגרום למשלוח הערך 328932ABC232E בשם sessionID כאשר המשתמש יאשר את הטופס, ללא ידיעתו של המשתמש.

תמונות[עריכת קוד מקור | עריכה]

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

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ויקישיתוף מדיה וקבצים בנושא עוגייה בוויקישיתוף

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ למד לשונך 55, באתר האקדמיה ללשון העברית, 14 בספטמבר 2004
  2. ^ Persistent Client State HTTP Cookies, באתר נטסקייפ (עותק של העמוד בארכיון האינטרנט)
  3. ^ RFC 2109
  4. ^ RFC 2965
  5. ^ Cookie Expires/Max-Age attribute upper limit, באתר chromestatus.com
  6. ^ בדפדפנים מתקדמים יותר, החוסמים אפשרות זו מטעמי אבטחה, ניתן לגשת לנתונים באמצעות כלי פיתוח שונים
  7. ^ 32002L0058, באתר EUR-Lex
  8. ^ Commission of the European Communities,‏ Commission Staff Working Paper - Annex to the: European Electronic Communications Regulation and Markets 2004, עמוד 38, באתר European Commission
  9. ^ עוגיות ללא עוגיות, הסבר על השיטה