מדיניות ברירת מחדל חדשה לגורם מפנה ב-Chrome – strict-origin-when-cross-origin

מוד נאלפס
מוד נאלפס

לפני שנתחיל:

  • אם אתם לא בטוחים מה ההבדל בין "site" ל-"origin", תוכלו לעיין במאמר הסבר על "same-site" ו-"same-origin".
  • בכותרת Referer חסר R בגלל שגיאת איות מקורית במפרט. הכותרת Referrer-Policy והכותרת referrer ב-JavaScript וה-DOM מאויתים כראוי.

סיכום

  • דפדפנים מפתחים מדיניות ברירת מחדל לשיפור הפרטיות, כדי לספק חלופה טובה לאתר לא מוגדרת מדיניות.
  • ב-Chrome מתכננים להפעיל בהדרגה את strict-origin-when-cross-origin כמדיניות ברירת המחדל. זה עשוי להשפיע על תרחישים לדוגמה שמסתמכים על ערך הגורם המפנה ממקור אחר.
  • זוהי ברירת המחדל החדשה, אך אתרים עדיין יכולים לבחור מדיניות לפי בחירתם.
  • כדי לנסות את השינוי ב-Chrome, צריך להפעיל את התכונה הניסיונית ב-chrome://flags/#reduced-referrer-granularity. תוכלו גם לצפות בהדגמה הזו כדי לראות את השינוי בפעולה.
  • מעבר למדיניות בנושא גורמים מפנים, האופן שבו דפדפנים מטפלים בגורמים מפנים עשוי להשתנות – אז צריך להשגיח.

מה השתנה ולמה?

בקשות HTTP עשויות לכלול את הכותרת Referer האופציונלית, שמציינת את כתובת ה-URL של המקור או של דף האינטרנט שממנה נשלחה הבקשה. הכותרת Referer-Policy מגדירה אילו נתונים יהיו זמינים בכותרת Referer, ועבור ניווט ומסגרות iframe ב-document.referrer של היעד.

המידע המדויק שנשלח בכותרת Referer בבקשה מהאתר שלכם נקבע לפי הכותרת Referrer-Policy שהגדרתם.

תרשים: הגורם המפנה שנשלח
      בבקשה.
מדיניות הגורם המפנה והגורם המפנה.

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

לצורך ניווטים ומסגרות iframe, אפשר לגשת לנתונים שנמצאים בכותרת Referer גם דרך JavaScript באמצעות document.referrer.

עד לאחרונה, המדיניות no-referrer-when-downgrade הייתה מדיניות ברירת מחדל נרחבת בכל הדפדפנים. אבל עכשיו דפדפנים רבים נמצאים בשלב מסוים של מעבר לברירות מחדל נוספות לשיפור הפרטיות.

מדיניות ברירת המחדל של Chrome תשתנה מ-no-referrer-when-downgrade ל-strict-origin-when-cross-origin, החל מגרסה 85.

כלומר, אם לא הוגדרה מדיניות לאתר שלכם, Chrome ישתמש ב-strict-origin-when-cross-origin כברירת מחדל. חשוב לזכור שעדיין אפשר להגדיר מדיניות לפי בחירתכם. השינוי ישפיע רק על אתרים שלא הוגדרה להם מדיניות.

מה משמעות השינוי הזה?

ב-strict-origin-when-cross-origin אפשר ליהנות מפרטיות יותר. במדיניות הזו, רק origin נשלח בכותרת Referer של בקשות ממקורות שונים.

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

תרשים: הגורם המפנה נשלח
      בהתאם למדיניות, בבקשה ממקורות שונים.
הגורם המפנה נשלח (ו-document.referrer) לבקשה ממקורות שונים, בהתאם למדיניות.

לדוגמה:

בקשה ממקורות שונים, שנשלחה מ-https://site-one.example/stuff/detail?tag=red אל https://site-two.example/...:

  • עם no-referrer-when-downgrade: הגורם המפנה: https://site-one.example/stuff/detail?tag=red.
  • עם strict-origin-when-cross-origin: הגורם המפנה: https://site-one.example/.

מה נשאר ללא שינוי?

  • בדומה ל-no-referrer-when-downgrade, strict-origin-when-cross-origin הוא מאובטח: אין גורם מפנה (הכותרת Referer ו-document.referrer) כשהבקשה נשלחת ממקור HTTPS (מאובטח) למקור HTTP (לא מאובטח). כך, אם באתר נעשה שימוש ב-HTTPS (אם לא, יש להגדיר אותו בעדיפות גבוהה), כתובות ה-URL של האתר לא ידלפו בבקשות שאינן HTTPS מפני שכל אחד ברשת יכול לראות אותן. כך המשתמשים עלולים להיחשף להתקפות אדם בתווך.
  • באותו מקור, ערך הכותרת Referer הוא כתובת ה-URL המלאה.

לדוגמה: בקשת Same-origin שנשלחת מ-https://site-one.example/stuff/detail?tag=red אל https://site-one.example/...:

  • עם strict-origin-when-cross-origin: הגורם המפנה: https://site-one.example/stuff/detail?tag=red

מה ההשפעה?

בהתבסס על דיונים עם דפדפנים אחרים והניסויים של Chrome עצמו שמופעלים ב-Chrome 84, ההפסקות הגלויות למשתמשים צפויות להיות מוגבלות.

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

מה צריך לעשות?

אנחנו מתכננים להשיק ב-Chrome את מדיניות ברירת המחדל החדשה לגורם מפנה ב-85 (גרסת הבטא מיולי 2020, או אוגוסט 2020 בגרסה יציבה). אפשר לראות את הסטטוס ברשומת הסטטוס של Chrome.

הבנה וזיהוי של השינוי

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

ניתן להשתמש בהדגמה הזו גם כדי לזהות איזו מדיניות חלה במופע Chrome שאתם מפעילים.

בודקים את השינוי ומחליטים אם הוא ישפיע על האתר

אתם יכולים כבר לנסות את השינוי החל מ-Chrome 81: נכנסים לכתובת chrome://flags/#reduced-referrer-granularity ב-Chrome ומפעילים את התכונה הניסיונית. כשהסימון הזה מופעל, כל האתרים בלי מדיניות ישתמשו בברירת המחדל החדשה של strict-origin-when-cross-origin.

צילום מסך של Chrome: איך
 מפעילים את הסימון chrome://flags/#reduced-referrer-granularity.
הפעלת הדגל.

עכשיו אפשר לבדוק את ההתנהגות של האתר ושל הקצה העורפי.

דרך נוספת לזהות השפעה היא לבדוק אם ה-codebase של האתר משתמש בגורם המפנה – באמצעות הכותרת Referer של בקשות נכנסות בשרת או דרך document.referrer ב-JavaScript.

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

אם זה משפיע על האתר שלך, כדאי לשקול חלופות

אם אתם משתמשים בגורם המפנה כדי לגשת לנתיב המלא או למחרוזת השאילתה של הבקשות לאתר שלכם, יש לכם כמה אפשרויות:

  • אפשר להשתמש בשיטות ובכותרות חלופיות כמו Origin ו-Sec-fetch-Site להגנה על ה-CSRF, לרישום ביומן ותרחישים אחרים לדוגמה. כדאי לעיין במאמר מדיניות לגבי מקורות הפניה וגורם מפנה: שיטות מומלצות.
  • אתם יכולים לתאם מדיניות ספציפית עם השותפים אם היא נחוצה ותספק שקיפות למשתמשים שלכם. בקרת גישה – כשאתרים משתמשים בגורם המפנה כדי להעניק גישה ספציפית למשאבים שלהם למקורות אחרים – יכול להיות מצב כזה, למרות שעם השינוי ב-Chrome, המקור עדיין משותף בכותרת Referer (וב-document.referrer).

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

ליישם באתר שלכם מדיניות מפורשת לשיפור הפרטיות

אילו Referer צריך לשלוח בבקשות שמקורן באתר שלכם, כלומר איזו מדיניות צריך להגדיר לאתר?

גם אחרי השינויים ב-Chrome, כדאי להגדיר כבר עכשיו מדיניות מפורשת שמשפרת את הפרטיות, כמו strict-origin-when-cross-origin או מחמירה יותר.

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

פרטים על הגדרת המדיניות מופיעים במאמר מדיניות של הגורם המפנה והגורם המפנה: שיטות מומלצות.

מידע על Chrome Enterprise

המדיניות הארגונית של Chrome ForceLegacyDefaultReferrerPolicy זמינה לאדמינים ב-IT שרוצים לאלץ את מדיניות ברירת המחדל הקודמת לגורם מפנה של no-referrer-when-downgrade בסביבות ארגוניות. כך לארגונים יהיה יותר זמן לבדוק ולעדכן את האפליקציות שלהם.

המדיניות הזו תוסר ב-Chrome 88.

שליחת משוב

רוצה לשלוח לנו משוב או משהו לדווח עליו? תוכלו לשתף משוב על הכוונה של Chrome לשלוח, או לשלוח ציוץ לשאלות שלכם בכתובת @maudnals.

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

משאבים