קובץ cookie הוא קטע של נתונים השמורים בדפדפן ומשמש לשמירת המצב ומידע אחר שנדרש לאתר כדי להפעיל את התכונות שלו.
קובץ cookie הוא קובץ קטן שאתרים מאחסנים במחשב של המשתמשים שלהם, והמידע שהוא מאחסן עובר בין הדפדפן לאתר.
כל קובץ cookie הוא צמד מפתח/ערך עם מספר מאפיינים שקובעים מתי ואיפה ייעשה שימוש בקובץ ה-cookie הזה. המאפיינים האלה משמשים להגדרת תאריכי תפוגה, או כדי לציין שיש לשלוח את קובץ ה-cookie רק באמצעות HTTPS. ניתן להגדיר קובץ cookie בכותרת HTTP או דרך ממשק JavaScript.
קובצי cookie הם אחת מהשיטות הזמינות להוספת מצב קבוע לאתרים. עם השנים, היכולות שלהם גדלו והתפתחו, אבל השאירה את הפלטפורמה עם בעיות מדור קודם בעייתיות. כדי לטפל בבעיה הזו, דפדפנים (כולל Chrome, Firefox ו-Edge) משנים את אופן הפעולה שלהם כדי לאכוף הגדרות ברירת מחדל נוספות לשמירה על הפרטיות.
קובצי ה-Cookie בפעולה
נניח שיש לך בלוג שבו ברצונך להציג את ההודעה "מה חדש" קידום אל משתמשים. המשתמשים יכולים לסגור את המבצע ולאחר מכן לא יראו אותו שוב לזמן מה. אפשר לשמור את ההעדפה הזו בקובץ cookie, ולהגדיר את התוקף שלה למשך חודש (2,600,000 שניות), ולשלוח אותו רק באמצעות HTTPS. הכותרת הזו תיראה כך הזה:
Set-Cookie: promo_shown=1; Max-Age=2600000; Secure
כשהקוראים צופים בדף שעומד בדרישות האלה — הם מאובטח וקובץ ה-Cookie נוצר לפני פחות מחודש - הדפדפן המערכת תשלח את הכותרת הזו בבקשה שלה:
Cookie: promo_shown=1
אפשר גם להוסיף ולקרוא את קובצי ה-Cookie שזמינים לאתר ב-JavaScript באמצעות
document.cookie
הגשה של מטלה ל-document.cookie
תיצור או
לשנות קובץ cookie עם המפתח הזה. לדוגמה, אפשר לנסות את הפעולות הבאות
לוח JavaScript של הדפדפן:
→ document.cookie = "promo_shown=1; Max-Age=2600000; Secure"
← "promo_shown=1; Max-Age=2600000; Secure"
קריאה של document.cookie
תייצר פלט של כל קובצי ה-cookie שניתן לגשת אליהם כרגע
את ההקשר, כאשר כל קובץ cookie מופרד באמצעות נקודה ופסיק:
→ document.cookie;
← "promo_shown=1; color_theme=peachpuff; sidebar_loc=left"
אם תנסו את האפשרות הזו במבחר אתרים פופולריים, תבחינו שרובם
הם הגדירו באופן משמעותי יותר משלושה קובצי cookie בלבד. ברוב המקרים,
קובצי Cookie נשלחים בכל בקשה יחידה לאותו דומיין,
השלכות. לרוב רוחב הפס של ההעלאה מוגבל יותר מרוחב הפס להורדה
המשתמשים, כך שהתקורה על כל הבקשות היוצאות גורמת לעיכוב בזמן
בייט ראשון. מומלץ לנהוג בעקביות במספר ובגודל של קובצי ה-Cookie שאתם מגדירים. יצרן
שימוש במאפיין Max-Age
כדי להבטיח שקובצי Cookie לא נמצאים
יותר מהנדרש.
מהם קובצי Cookie של צד ראשון ושל צד שלישי?
אם חוזרים לאותה מבחר אתרים שצפיתם בהם קודם, שככל הנראה הבחינו בכך שהיו קובצי Cookie קיימים עבור מגוון של דומיינים, רק לגבי האתר שבו אתם מבקרים עכשיו. קובצי cookie שתואמים לדומיין של מהאתר הנוכחי, כלומר מה שמוצג בסרגל הכתובות של הדפדפן, מופנים כקובצי Cookie של אינטראקציה ישירה (First-Party). באופן דומה, קובצי cookie מדומיינים שונים האתר הנוכחי מכונים קובצי Cookie של צד שלישי. נתון זה אינו מוחלט תווית, אבל היא ביחס להקשר של המשתמש. אותו קובץ Cookie יכול להיות צד ראשון או צד שלישי, בהתאם לאתר שבו המשתמש נמצא באותו זמן.
בהמשך לדוגמה שלמעלה, נניח שבאחד מהפוסטים שלך בבלוג יש
תמונה של חתול מדהים במיוחד, והיא מתארחת
/blog/img/amazing-cat.png
בגלל שזו תמונה כל כך מדהימה, מישהו אחר
משתמשים בו ישירות באתר שלהם. אם מבקר ביקר בבלוג שלכם ויש לו
קובץ Cookie אחד (promo_shown
), ולאחר מכן כשהוא יצפה ב-amazing-cat.png
בצד השני
באתר של המשתמש שישלח לו בקשה לתמונה. הזה
לא מועילה במיוחד לאף אחד, כי promo_shown
לא משמש לשום דבר.
באתר של האדם הזה, מדובר רק בהוספת תקורה לבקשה.
אם זו השפעה לא מכוונת, למה כדאי לעשות זאת? זהו זה מנגנון שמאפשר לאתרים לשמור על המצב כאשר משתמשים בהם בהקשר של צד שלישי. לדוגמה, אם תטמיעו סרטון YouTube באתר שלכם, מבקרים יראו את הקישור 'לצפייה בהמשך' האפשרות בנגן. אם המבקר שלכם כבר נכנסתם ל-YouTube, הסשן הזה זמין בנגן מוטמע באמצעות קובץ Cookie של צד שלישי — כלומר, "לצפייה בהמשך" הלחצן פשוט לשמור את הסרטון בבת אחת במקום לבקש מהם להיכנס או שצריך לנווט אותם אל מחוץ לדף ולחזור אל YouTube.
אחד מהנכסים התרבותיים של האינטרנט הוא שבדרך כלל הוא פתוח על ידי
כברירת מחדל. זה חלק ממה שמאפשר לאנשים רבים כל כך ליצור
את התוכן והאפליקציות שלהם. עם זאת, הדבר גרם גם
בנושאי אבטחה ופרטיות. התקפות Cross-Site Request Forgery (CSRF) מסתמכות על
העובדה שקובצי cookie מצורפים לכל בקשה למקור נתון, ללא קשר
מי שיוזם את הבקשה. לדוגמה, אם תבקרי בכתובת evil.example
, היא תוכל
תפעיל בקשות אל your-blog.example
, והדפדפן שלך יצרף בשמחה
קובצי ה-Cookie המשויכים. אם הבלוג שלכם לא מקפידים על האופן שבו הוא מאמת אותן
בקשות ולכן evil.example
עשויות להפעיל פעולות כמו מחיקת פוסטים או הוספה
את התוכן שלהם.
בנוסף, המשתמשים מודעים יותר לאופן שבו ניתן להשתמש בקובצי Cookie כדי לעקוב
פעילות באתרים מרובים. עם זאת, עד עכשיו לא הייתה דרך
לציין במפורש את הכוונה שלכם בקובץ ה-cookie. קובץ ה-cookie promo_shown
שלך
יישלחו רק בהקשר של צד ראשון, ואילו קובץ Cookie של סשן עבור ווידג'ט.
אמור להיות מוטמע באתרים אחרים,
במצב מחובר לחשבון של צד שלישי.
אפשר להצהיר באופן מפורש על הכוונה שלכם בקובץ cookie, על ידי הגדרת מאפיין SameSite המתאים.
כדי לזהות את קובצי ה-Cookie מהדומיין הנוכחי ולהגדיר מאפיינים מתאימים, כדאי לעיין במתכונים לקובצי Cookie מהדומיין הנוכחי.