עוגייה (אינטרנט)
מתוך ויקיפדיה, האנציקלופדיה החופשית
יש לשכתב ערך זה ייתכנו לכך מספר סיבות: ייתכן שהערך מכיל טעויות, או שהניסוח וצורת הכתיבה שלו אינם מתאימים. אתם מוזמנים לסייע ולתקן את הבעיות, אך אנא אל תורידו את ההודעה כל עוד לא תוקן הדף. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה. |
יש להשלים ערך זה ערך זה עשוי להיראות מלא ומפורט, אך הוא אינו שלם, ועדיין חסר בו תוכן מהותי. הנכם מוזמנים להשלים את החלקים החסרים ולהסיר הודעה זו. ראו פירוט בדף השיחה. |
עוגייה (בעברית תקנית: קוקית; בסלנג: קוקי, מלשון המילה האנגלית HTTP cookie) היא פיסת מידע הנשלחת מהשרת לדפדפן, והיא מוחזרת ללא שינוי עם כל גישה לשרת. העוגיות משמשות לאימות, למעקב ולאגירת מידע על אודות המשתמש, כגון שמירת העדפות המשתמש.
מאז שהחל השימוש בעוגיות למטרת מעקב אחר התנהגות הדפדפן, הפכו העוגיות למקור לדאגה בהקשר לפרטיות באינטרנט. כתוצאה מכך חוקקו מספר מדינות, בהן ארצות הברית ומדינות באיחוד האירופי, חוקים להגבלת השימוש בעוגיות. בנוסף, יש שביקרו את השימוש בעוגיות משום שאופן הזיהוי והאימות אינו תמיד מדויק ומשום שניתן להשתמש בהם, באופן פוטנציאלי, לתקיפת רשתות תקשורת. קיימות חלופות לעוגיות, אך גם להן חסרונות.
תפיסות מוטעות רבות סובבות את מושג העוגיות, מרביתן מבוססות על האבחנה השגויה כי עוגיות הן סוג של תוכנית מחשב. למעשה, עוגיה היא פיסת מידע פשוטה שאינה מסוגלת לבצע אף פעולה בכוחות עצמה. בפרט, הן אינם רוגלה וגם לא וירוס, על אף זיהויים ככאלו על ידי תוכנות שונות לגילוי רוגלה.
מרבית הדפדפנים המודרניים מאפשרים למשתמשים להחליט האם להשתמש בעוגיות, אך אי שימוש בהן יכול לגרום לאתרי אינטרנט מסוימים להיות בלתי נגישים. לדוגמה, עגלת קניות באתר קניות שמבוססת על עוגיות, לא תוכל לשמור את הפריטים שבחר המשתמש אם העוגיות נדחו על ידו.
תוכן עניינים |
[עריכה] תכלית
העוגיות משמשות את שרתי דפי האינטרנט: העוגיות מאפשרות להבדיל בין המשתמשים באתר האינטרנט, ולאגירת מידע רלוונטי המתייחס למשתמש זה במהלך ביקורו באתר ברגע זה, ולעתים גם בביקורים עתידיים. העוגיות הונהגו לראשונה כדי לאפשר את השימוש ב"עגלת קניות" (או "סל קניות"), התקן וירטואלי אשר לתוכו יכול המשתמש "להניח" פריטים שברצונו לרכוש באתר הקניות. התקן זה מאפשר למשתמש לנווט באתר האינטרנט בצורה חופשית למדי כשבאפשרותו להוסיף ולהסיר פריטים מעגלת הקניות בכל עת.
שימוש נוסף בעוגיות הוא האפשרות להתחבר לחשבון המשתמש באתר. העוגיות מאפשרות לשרת לברר האם המשתמש נרשם בעבר וכך לאפשר לו להירשם בצורה אוטומטית ולאפשר לו גישה לשירותים או פעולות שניתנות רק למשתמשים רשומים. דוגמה נפוצה לכך היא שירות דואר אלקטרוני כגון הוטמייל: לאחר שהמשתמש הזדהה בטופס הכניסה לשירות, נשמרת שם המשתמש לו וסיסמתו בעוגייה. מרגע זה, גם אם יעבור לאתר אחר ויחזור לשירות הדואר האלקטורני במועד מאוחר יותר, לא יצטרך להירשם מחדש, שכן באמצעות העוגייה שנוצרה בטופס הכניסה לשירות יזהה השרת את המשתמש באופן מיידי. מכאן שהעוגייה יכולה לחסוך מהמשתמש את הצורך להתחבר בכל פעם מחדש לאתר האינטרנט.
מספר אתרי אינטרנט משתמשים בעוגיות למטרת התאמה אישית של תצוגת האתר על פי העדפות המשתמש. אתרים הדורשים אימות מרבים להשתמש בתכונה זו, אולם היא קיימת גם באתרים שאין בהם חיוב להזדהה. לדוגמה, אתר האינטרנט ויקיפדיה מאפשר למשתמשים שנרשמו לבחור את ממשק המשתמש (skin) האהוב עליהם. מנוע החיפוש גוגל מאפשר (גם למשתמשים לא רשומים) לבחור כמה תוצאות יוצגו בכל דף.
עוגיות משמשות גם להתחקות אחר המשתמש באתר אינטרנט מסוים, כלומר - למעקב התנהגות הדפדפן. עוגיות צד ג' ו-web bugs, המוסבר בהמשך, מאפשרות להתחקות אחר המשתמש גם כשהוא עובר בין אתרי אינטרנט שונים. מעקב בתוך אחד יחיד נעשה בדרך כלל לבדיקת סטטיסטיקת השימוש בדפי האתר. מצד שני, מעקב בין אתרים שונים נעשה בדרך כלל על ידי חברות פרסום לפיתוח פרופילים של משתמשים אנונימיים המשתמשים לפרסום (בחירת הפרסומות שיוצגו) על פי פרופיל המשתמש.
[עריכה] אופן המימוש
מבחינה טכנית, עוגיות הן פיסות מידע בלתי מבוקרות שנוצרות על ידי שרת דפי אינטרנט ואשר נשלחות על ידי הדפדפן. הדפדפן מחזיר אותם מבלי לבצע בהם שינויים על מנת שייצגו אירועים קודמים. כאשר העוגיות אינן מופעלות, כל אחזור של דף אינטרנט או רכיב של דף אינטרנט הוא אירוע בודד אשר, בדרך כלל, אינו קשור לשאר התכונות של הדף באותו אתר. על ידי החזרת עוגייה לשרת מספק הדפדפן אמצעי של תקשורת בין הדף הנוכחי לדפים קודמים שנצפו. מלבד השרת, גם סקריפט בשפה כמו JavaScript יכולה ליצור עוגיות, אם הללו נתמכות וניתנות להפעלה על ידי הדפדפן.
ספציפיקצית העוגיות (?) מציע כי על הדפדפנים לתמוך במספר מינימלי של עוגיות או להקצות מספר מינימלי של זיכרון כדי לאגור אותם. בפרט, הדפדפן מצופה לאפשר לאגור לפחות 300 עוגיות בגודל של 4 קילובייט כל אחד, ולפחות 20 עוגיות לכל שרת או מתחם.
להלן מספר העוגיות המקסימלי לכל מתחם שמאפשרות הדפדפנים הנפוצים:
- מוזילה פיירפוקס 1.5 ו-2.0: 50
- אופרה 9: 30
- אינטרנט אקספלורר 6 ו-7: 20 (שניהם הועלו ל-50 בעדכון שנעשה ב-14 באוגוסט 2007)
בפועל, על עוגיות להיות קטנות מ-4 קילובייט. אינטרנט אקספלורר כופה גודל זה על כל העוגיות שנשמרות במתחם נתון.
על פי סדרה המיזכרים של בקשה להערות (RFC), שמות העוגיות רגישות לגודל האותיות (?) בהתאם לפסקה 3.1 ב-RFC 2965.
בעת יצירת עוגייה חדשה ניתן להגדיר תאריך תפוגה, התאריך שבו תימחק העוגייה. אם לא נקבעה תאריך תפוגה, העוגייה תימחק לאחר שהמשתמש סגר את הדפדפן. מסיבה זו, ציון תאריך מאפשר את קיומו של העוגייה על פני שיחות שונות. עוגיות אלו נקראות בשם "עוגיות קבועות" (באנגלית: persistent cookies), להבדיל מ"עוגיות זמניות". כדוגמה ליישום העוגיות הקבועות ניתן לחשוב על אתר קניות שמשתמש בעוגיות קבועות כדי לשמור את הפריטים שהמשתמש שם בעגלת הקניות הווירטואלית. גם אם המשתמש יעזוב את האתר ויסגור את הדפדפן מבלי לבצע את הרכישה עצמה, הוא יוכל לחזור מאוחר יותר ולהמשיך עם מסע הקניות ולמצוא את הפריטים שלו בעגלת הקניות הווירטואלית שלו. אילו לא ניתנה לעוגיות אלו תאריך תפוגה, היו העוגיות נמחקות לאחר שהמשתמש סגר את הדפדפן, והמידע על תוכן העגלה היה הולך לאיבוד.
[עריכה] תפיסות מוטעות
מאז שהוצגו לראשונה באינטרנט, הופצו, באמצעות האינטרנט והתקשורת, מספר תפיסות מוטעות בכל הנוגע לעוגיות. חברת Jupitermedia פרסמה בשנת 2005 את תוצאותיו של סקר שערכה. על פי תוצאות הסקר חלק עקבי מהמגיבים האמינו לחלק מהטענות הכוזבות הבאות:
- עוגיות דומות לווירוס מחשב בכך שהן יכולות למחוק מידע מהדיסק הקשיח של המשתמש
- עוגיות הן סוג של רוגלה מכיוון שהן יכולות לקרוא מידע אישי השמור במחשב המשתמש
- עוגיות מייצרות פרסומות קופצות (popups)
- עוגיות משמשות להפצת דואר זבל
- עוגיות משמשות לפרסום בלבד
למעשה, עוגיות כוללות בתוכן רק נתונים, ולא קוד תוכנית: הן אינן יכולות להסיר או לקרוא מידע שנמצא במחשב המשתמש. עם זאת, עוגיות משמשות למעקב אחרי דפי האינטרנט שביקר המשתמש באתר נתון. ניתן לאסוף מידע זה ולהכין באמצעותו פרופיל של המשתמש. פרופילים אלו הם בדרך כלל אינם כוללים מידע אישי של המשתמש (שם, מען וכדומה). ליתר דיוק, הן אינן יכולות להכיל מידע אישי אלא אם המשתמש אפשר לאתרים מסוימים לצפות במידע זה. פרופילים אלו, על אף היותם אנונימיים, היו נתונים לדאגות מבחינת הפרטיות.
בנוסף, על פי הסקר, אחוז ניכר של משתמשי אינטרנט לא ידע כיצד למחוק עוגיות.
[עריכה] הגדרות הדפדפן
מרבית הדפדפנים המודרניים תומכים בשימוש בעוגיות. יחד עם זאת, המשתמש יכול בדרך כלל לבחור האם לאפשר לדפדפן להשתמש בהם או לאסור את השימוש בהם כליל. להלן אפשרויות נפוצות:
- חסום את השימוש בעוגיות.
- הדפדפן יבקש מהמשתמש האם לאפשר את השימוש בעוגייה, עבור כל עוגייה שהשרת מבקש ליצור.
- התר את השימוש בעוגיות באתרים שנמצאים ברשימה לבנה.
- התר את השימוש בעוגיות מלבד באתרים שנמצאים ברשימה שחורה.
- התר את השימוש בעוגיות.
קיימות אפשרויות נוספות פחות נפוצות, כגון חסימת עוגיות צד ג' (ראו בהמשך) והתרת השימוש בעוגיות כעוגיות זמניות (כלומר, העוגיות יימחקו בכל מקרה עם סגירת הדפדפן).
ישנם דפדפנים המאפשרים למשתמש לסרוק את העוגיות ולמחוק עוגיות ספציפיות. מרבית הדפדפנים התומכים ב-JavaScript מאפשרות למשתמש לבדוק את העוגיות הפעילות באתר שבו הם נמצאים על ידי הקלדת
javascript:alert("Cookies: " + document.cookie)
לתוך שורת הכתובת של הדפדפן. דפדפנים אחרים כוללים תוכנת "מנהל עוגיות" המאפשר לנהל את העוגיות בצורה מסודרת ונוחה.
פרוטוקול P3P כולל את האפשרות ששרת יצהיר על מדיניות הפרטיות שלו המפרטת איזה סוג מידע היא אוספת ולאיזו מטרה. מדיניות זו כוללת (אך לא רק) מידע על המידע שנאסף באמצעות עוגיות.
[עריכה] פרטיות ועוגיות צד ג'
לעוגיות יש משמעות חשובה בהקשר לנושא הפרטיות והאלמוניות באינטרנט. העוגיות נשלחות אך ורק לשרת שיצר אותם או אל שרת אחר תחת אותו מתחם. ואולם, דף האינטרנט יכול לכלול תמונות או רכיבים אחרים שמקורם בשרת של מתחם אחר. עוגיות שנוצרות במהלך האחזור של רכיבים אלו קרויים בשם עוגיות צד ג' (או עוגיות צג שלישי).
חברות פרסום משתמשות בעוגיות צד ג' כדי לעבור אחר המשתמש בעודו עובר בין האתרים השונים. חברת פרסום יכולה, למשל, לעקוב אחר משתמש שעבר דרך דפי אינטרנט שכוללים תמונות פרסומיות או web bugs (?). בעזרת ידע זה יכולה חברת הפרסום לדעת מהן העדפות המשתמש וכך להציג בפניו את הפרסומות שמתאימות לו.
בנייתה של פרופילים של משתמשים נחשבת על ידי רבים כאיום פוטנציאלי על הפרטיות, גם אם המעקב נעשה במרחב יחיד. מסיבה זו ישנן מדינות שהעבירו חוקים שמגבילים את המידע שניתן להשיג באמצעות עוגיות ואת אופן השימוש בעוגיות.
מדינת ארצות הברית, למשל, קבעה חוקים נוקשים בכל הנוגע ליצירת עוגיות חדשות. חוקים אלו, אשר נקבעו בשנת 2000, נקבעו לאחר שנחשף כי המשרד ליישום המדיניות של הממשל האמריקאי נגד השימוש בסמים (ONDCP) בבית הלבן השתמש בעוגיות כדי לעקוב אחרי משתמשים שצפו בפרסומות נגד השימוש בסמים במטרה לבדוק האם משתמשים אלו נכנסו לאתרים התומכים בשימוש בסמים. פעיל למען הפרטיות בשם דניאל בראנט חשף כי ה-CIA הניח עוגיות קבועות במחשבי אזרחים במשך עשר שנים. לאחר שהובהר להם כי הם מפרים מדיניות, הם הצהירו כי הדבר לא נעשה בכוונה תחילה, והפסיקו להניח אותם. ב-25 בדצמבר 2005 גילה בראנט כי סוכנות הביטחון הלאומי (ה-NSA) השאירה שתי עוגיות קבועות במחשבי מבקרים בגלל שדרוג תוכנה. לאחר שהנושא הובא לידיעתם, הם ביטלו מיד את השימוש בהן.
הנחיה משנת 2002 של האיחוד האירופי בנוגע לפרטיות בתחום הטלקומוניקציה קבעה גם היא חוקים בנוגע להפעלת עוגיות. סעיף 5 בפסקה 3 מכתיבה כי שמירת מידע (כגון עוגיות) במחשבו של משתמש ייעשה רק אם המשתמש סיפק מידע אודות כיצד יש להשתמש במידע שנאסף, ולמשתמש ניתנה האפשרות להתנגד לאחסון המידע. עם זאת, הסעיף מציין כי אחסון מידע אשר נחשב להכרחי מסיבות טכניות, פטורות מכלל זה. ההנחיה הייתה אמורה להיכנס לתוקף באוקטובר 2003, אך דיווח מדצמבר 2004 מציין (בעמוד 38) כי הנחיה זו אינה מיושמת בפועל, וכי מספר מדינות (סלובקיה, לטביה, יוון, בלגיה ולוקסמבורג) גם לא יישמו אותה בחוק הלאומי.
[עריכה] החסרונות בשימוש בעוגיות
מלבד נושא הפרטיות, לעוגיות ישנם גם חסרונות טכניות.
- מנגנון הזדהות לא מדויק
- לכל דפדפן יש אזור אחסון משלו, ולכן אם במחשב נתון יש יותר מדפדפן אחד, ייתכנו מספר עוגיות זהות - אחד עבור כל דפדפן. בנוסף, העוגיות אינן מסוגלות להבדיל בין משתמשים שונים המשתמשים באותו מחשב ודפדפן, ובאותו חשבון משתמש.
- גניבת עוגיות
- העוגיות נשלחות פעמים רבות במהלך אורך חייהם אל השרת וחזרה אל דפדפן המשתמש. הגישה אל עוגיות אלו אמורה להיות מוגבלת שהרי עוגיות יכולות לכלול מידע אישי ורגיש, כגון שם משתמש וסימן המשמש לאימות. גניבת עוגיות מתרחשת כאשר צד לא מורשה מקבל לידיו עוגייה.
- דרך אחת לגנוב עוגייה היא באמצעות רחרחן חבילות מידע. ניתן לקרוא את התנועה ברשת באמצעות מחשבים אחרים שנמצאים באותו רשת מחשבים, אף שהם אינם מעורבים ישירות בשליחת וקבלת המידע. בתנועה זו כלולות גם עוגיות שנשלחות לפרוטוקול HTTP. משתמשים במחשבים אלו יכולים לקרוא את המידע העובר ברשת, כולל את העוגיות, באמצעות תוכנות הקרויות רחרחני חבילות מידע. ניתן להתגבר על הבעיה על ידי שימוש ב-URI ובפרוטוקול אבטחת שיגור היפרטקסט (https) שקוראות לפרוטוקול TLS על מנת שיצפין את קו התקשורת. בעת יצירת עוגייה יכול השרת לציין דגלון אבטחה והדפדפן ישלח את העוגייה באמצעות ערוץ מאובטח, כגון פרוטוקול SSL.
- דרך נוספת לגנוב עוגיות היא באמצעות באג XSS הגורם לדפדפן לשלוח עוגיות לשרתים שאינם אמורים לקבלם. דפדפנים מודרניים מאפשרים לבצע קטעי קוד שאוחזרו מהשרת. אם ניתן לגשת אל העוגייה בזמן הרצת הקוד, ערכיהם יכולים להישלח אל שרתים שלא אמורים לקבלם. הצפנת העוגיות לפני שליחתם ברשת אינה עוזרת במקרה זה.
- התוקפים משתמשים בשיטה זו בעיקר במחשבים המאפשרים שליחת תוכן HTML. התוקפים משלבים מידע בתוכן ה-HTML וכך הם יכולים לקבל עוגיות של משתמשים אחרים. ניתן להשתמש בעוגיות אלו על ידי התחברות לשרת שאמור היה לקבלם מלכתחילה, ולהזדהות בכינוי של המשתמש ממנו נגנבה העוגייה. ניתן למנוע התקפות כאלו באמצעות דגלון HttpOnly - אפשרות של מיקרוסופט שחוסמת עוגיות מפני גישה של קוד בצד לקוח.
- הרעלת עוגיות
- עוגייה אינה אמורה לעבור שינויים נוספים, מעבר לאלו שנעשו בעת היווצרותה, בעת המעבר בין הדפדפן לשרת. עם זאת, תוקף יכול לשנות את ערך העוגייה לפני שהיא נשלחת חזרה לשרת. לדוגמה, אם נתונה עוגייה שבה כלול סך הסכום לתשלום עבור הפריטים שהמשתמש מחזיק בעגלת הקניות, שינוי ערך זה יכול לגרום לכך שהמשתמש ישלם פחות מהנדרש. תהליך מסוג זה קרוי בשם "הרעלת עוגיות" (בלועזית: cookie poisoning).
- יחד עם זאת, מרבית האתרים שומרים בעוגייה עצמה רק את מזהה השיחה - מספר אקראי שמשפאר לזהות את השיחה של המשתמש, ושאר המידע שמור בשרת עצמו. כך ניתן לסלק את הסכנה מהרעלת עוגיות כמעט לחלוטין.
- נגישות
- לכל אתר העוגיות שלו כך שאתר כגון evil.org.il לא יוכל לערוך עוגייה של אתר אחר, כגון good.org.il. עם זאת, תוקף יכול לנצל חור בדפדפנים מסוימים ולהפר חוק זה. הרעיון דומה להרעלת עוגיות, אך התוקף מנצל משתמשים תמימים עם דפדפנים פגיעים, במקום פגיעה באתר עצמו. מטרתו של התוקף היא לעתים יצירת קבעון שיחה (בלועזית: session fixation).
- חוסר עקביות אצל השרת והלקוח
- השימוש בעוגיות יכול לגרום לחוסר עקביות בין מצב הלקוח ובין המצב ששמור בעגוייה (כלומר, אצל השרת). אם משתמש מקבל עוגייה ולאחר מכן לוחץ על כפתור "אחורה" של הדפדפן, המצב של הדפדפן בדרך כלל שונה ממצבו קודם יצירת העוגייה. לדוגמה, אם עגלת קניות באתר קניות מקוון ממומש באמצעות עוגיות, תוכן עגלת הקניות יכול לא להשתנות כאשר המשתמש עובר לדף אחר בהיסטוריית הדפדפן: אם משתמש מוסיף פריט לעגלת הקניות ולאחר מכן לוחץ על כפתור "אחורה" של הדפדפן, הפריט אינו מוסר מעגלת הקניות. ייתכן שזוהי לא כוונתו של משתמש שביקש לבטל את פעולת ההוספה. התנהגות זו יכולה להוביל לחוסר מהימנות, בלבול ובאגים.
[עריכה] חלופות לשימוש בעוגיות
פעולות מסוימות הממומשות באמצעות עוגיות ניתן לממש גם בדרכים אחרות. יחד עם זאת, גם לחלופות יש חסרונות ועל כן בדרך כלל אתרים מעדיפים להשתמש בעוגיות. מרבית החלופות הבאות מאפשרות מעקב אחר המשתמש, גם אם הן אינן אמינות כמו עוגיות. מסיבה זו, נושא הפרטיות אינו נפתר לחלוטין גם אם הדפדפן הוגדר על ידי המשתמש לחסום את השימוש בעוגיות.
[עריכה] כתובת 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">
יגרום למשלוח הערך 328932ABC232E בתור הערך sessionID כאשר המשתמש יאשר את הטופס.
[עריכה] יישום
[עריכה] הגדרת עוגייה חדשה
בקשות דפי אינטרנט נעשות דרך פרוטוקול HTTP, בעזרת הדפדפן. תחילה, מבלי להתייחס לעוגיות, הדפדפן מבקש דף מהשרת על ידי שליחת טקסט קצר המכונה "HTTP request". לדוגמה, כדי לגשת לדף http://www.w3.org/index.html, הדפדפן שולח לשרת www.w3.org בקשה:
GET /index.html HTTP/1.1 |
||
דפדפן |
|
שרת |
השרת משיב ושולח חבילת מידע המכונה "HTTP header". חבילת מידע זה כוללת שורות טקסט המבקשות מהדפדפן ליצור עוגיות (השורות בירוק):
HTTP/1.1 200 OK |
||
דפדפן |
|
שרת |
שורת ה-Set-Cookie
נשלח רק אם השרת מעוניין ליצור עוגייה. בשורה זו מבקשת השרת מהדפדפן לשמור את המחרוזת name=value
. אם הדפדפן מתיר את השימוש בעוגיות, העוגייה תישלח אוטומטית בכל פעם מחדש כאשר הדפדפן מבקש משרת זה דף חדש. לדוגמה, אם הבקשה הבאה תהיה הדף http://www.w3.org/spec.html, אזי הבקשה הבאה תישלח לשרת www.w3.org:
GET /spec.html HTTP/1.1 |
||
דפדפן |
|
שרת |
גם כאן מדובר בבקשת דף אינטרנט מהשרת. ההבדלים בין בקשה זו לבקשה הקודמת נובעים מהעוגייה שנוצרה בין הבקשות. באופן כזה יודע השרת שבקשה זאת קשורה לבקשה הקודמת. תגובת השרת תהיה שליחת הדף המבוקש, ואולי גם בקשה ליצירת עוגיות נוספות.
שרת יכול לשנות ערך של עוגייה על ידי שליחת שורה חדשה (Set-Cookie: name=newvalue
) בתגובה לבקשת דף מהדפדפן. הדפדפן יחליף את הערך הישן בערך החדש.
שרות ה-Set-Cookie
אינה נוצרת על ידי שרת ה-HTTP, אלא על ידי תוכנית CGI. שרת ה-HTTP יכול רק לשלוח את פלט התוכנית לדפדפן.
ניתן להגדיר עוגיות גם באמצעות JavaScript ושפות דומות אחרות הרצות בדפדפן. ב-JavaScript משמשת האובייקט document.cookie
למטרה זו. לדוגמה, ההוראה document.cookie = "temperature=20"
יוצרת עוגיה חדשה עם השם "temperature" והערך "2".
[עריכה] מאפייני העוגייה
מלבד השם והערך יכולה העוגייה לכלול גם תאריך תפוגה, נתיב, שם מתחם והמידע העונה על השאלה האם העוגייה נועדה לחיבורים מקודדים. על פי RFC 2965 יש לכלול כם את מספר הגרסה, אך בדרך כלל משמיטים אותה. מידע זה מופיע לאחר השם וערך, והם מופרדים בנקודה ופסיק. לדוגמה, ניתן ליצור עוגייה באמצעות השורה הבאה: {{{1}}}
.
שם המתחם והנתיב מבקשים מהדפדפן לשלוח את העוגייה חזרה לשרת כאשר ישנה בקשה של דפים מתוך שם המתחם והנתיב שצויינו. אם לא צויינו מאפיינים אלו, ברירת המחדל שניתנת להם הוא שם המתחם והנתיב שממנו נתבקש הדף. כתוצאה מכך, מחרוזות שם המתחם והנתיב עלולות לבקש מהדפדפן לשלוח עוגייה כאשר אין בכך צורך. למטרות אבטחה, העוגייה מתקבלת רק אם השרת מופיע במחרוזת שם המתחם.
את העוגיות מזהים על פי מאפיין השם, שם המתחם והנתיב - כולם יחד, ולא על פי מאפיין השם בלבד. ניתן אם כן ליצור מספר שמות על פני מספר שמות מתחם או על פני מספר נתיבים. באופן דומה, ניתן לשנות את ערך העוגייה רק אם שם המתחם והנתיב דומים.
תאריך התפוגה מבקשת מהדפדפן למחוק את העוגייה כאשר תוקף העוגייה פג. אם לא הוגדר תאריך תפוגה, העוגייה תימחק בסוף השיחה, כלומר, כאשר המשתמש סוגר את הדפדפן. תאריך התפוגה מוגדר בפורמט הבא: Wdy, DD-Mon-YYYY HH:MM:SS GMT. לדוגמה, להלן עוגייה שהוגדרה על ידי שרת דפי אינטרנט: {{{1}}}
.
שם העוגייה הוא RMID
וערכה 732423sdfs721242
. השרת יכול להשתמש במחרוזת שרירותית בערך העוגייה. השרת יכול לשמור מספר פרמטרים במחרוזת יחידה, כמו למשל {{{1}}}
. הנתיב ושם התחום, /
ו-.example.net
בהתאמה, מבקש מהדפדפן לשלוח עוגייה זו כאשר מבקשים דף שנמצא תחת שם המתחם שצוין.
[עריכה] אחר
השם "עוגייה" הוא תרגום של המילה האנגלית המקבילה, cookie. המילה "קוקית", שנקבעה על ידי האקדמיה ללשון העברית, שומרת על הצליל של המקור האנגלי, וכן רומזת לציפור קוקיה, שמטילה את ביציה בקיני זרים.
סוגי המידע שעשויים להשמר בעוגייה הם מגוונים. למשל, היא יכולה לשמש לשמירת הרשאות המשתמש, וכך למנוע את החזרה על תהליך הקלדת שם משתמש וסיסמה. בכל פעם שהדפדפן שולח בקשה לשרת הוא מצרף לבקשה את הפרטים השמורים בקוקית המתאימה לשרת אליו הוא פונה.
השימוש בעוגיות יעיל כאשר המשתמש נוהג לגשת לאתר מסוים רק ממחשב אחד. במצב כזה, במקום להזין בכל פעם מחדש פרטים כמו שם משתמש, סיסמה, פרטי כרטיס האשראי, עליו לעשות זאת פעם אחת בלבד, ומאותו הרגע יודע הדפדפן לשלוח את המידע הזה לשרת באופן אוטומטי.
עוגיות נמחקות בשתי דרכים – המשתמש יכול למחוק ידנית את הקובץ שבו נשמר המידע, או ש"פג תוקפה" של עוגיה (לאחר זמן מסוים שמוגדר בה) והיא נמחקת מאליה. לאחר שנמחקת עוגייה המכילה מידע מסוים יש להכניס מחדש את הפרטים, והם נשמרים בעוגייה חדשה שמחליפה את הקודמת.
עוגיות יוצרות בעיה פוטנציאלית של חשיפת מידע אישי ופרטי רגיש, שנשמר על הדיסק הקשיח במחשב ללא ידיעת הגולש ועשוי להפרץ על ידי גולשים או משתמשים אחרים. למרות ההקלה על המשתמש בכך שאינו נדרש להכניס מחדש את פרטיו, עלולות העוגיות לשמש לאיסוף מידע מגוון על אופי הגלישה של הגולש ובכך לפגוע בפרטיותו.
פגיעה נוספת בפרטיות הגולש עלולה להיגרם עקב דליפת הרגלי הגלישה שלו. נניח שחברה א' מספקת שרות לגולש מסוים, ומציבה פרסומות בעמודים של חברה ב'. בעזרת עוגייה הנשמרת במחשבו של הגולש, חברה א' יכולה לדעת האם, ובאיזו תדירות, אותו הגולש מגיע לאתרים של חברה ב'.
[עריכה] ראו גם
[עריכה] קישורים חיצוניים