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

Maud Nalpas
Maud Nalpas

לפני שנתחיל:

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

סיכום

  • הדפדפנים מתפתחים בהתאם לכללי מדיניות ברירת המחדל לשמירה על הפרטיות של גורמים מפנים, כדי שהם יוכלו לשמש כחלופה טובה כאשר לא הוגדרה מדיניות לאתר.
  • ב-Chrome מתכננים להפעיל בהדרגה את strict-origin-when-cross-origin כמדיניות ברירת המחדל בגרסה 85. השינוי הזה עשוי להשפיע על תרחישים שמסתמכים על ערך הגורם המפנה ממקור אחר.
  • זו ברירת המחדל החדשה, אבל בעלי אתרים עדיין יוכלו לבחור מדיניות לפי בחירתם.
  • כדי לנסות את השינוי ב-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 המלאה.

לדוגמה: בקשת מקור זהה, שנשלחה מהכתובת 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

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

המדיניות הזו תוסר בגרסה 88 של Chrome.

שליחת משוב

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

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

מקורות מידע