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

Camille Lamy
Camille Lamy

תאריך פרסום: 1 במאי 2025

החל מגרסה 137 של Chrome, מדיניות בידוד המסמכים היא תכונה חדשה שמקלה על השימוש ב-crossOriginIsolation. בניגוד ל-COEP‏ (Cross-Origin-Embedder-Policy), מדיניות בידוד המסמכים חלה על כל פריים ולא כוללת דרישות לגבי פריימים משניים. הפעלת crossOriginIsolation מאפשרת למדיניות בידוד המסמכים לפתוח גישה לפונקציונליות חזקה באינטרנט, כמו SharedArrayBuffers או שרשראות WebAssembly.

מהי בידוד ממקורות שונים?

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

מהי מדיניות בידוד מסמכים?

מדיניות בידוד מסמכים מספקת דרך פשוטה יותר להטמיע את crossOriginIsolation, בהשוואה ל-COOP‏ (Cross-Origin-Opener-Policy) ול-COEP‏ (Cross-Origin-Embedder-Policy). היא מאפשרת בידוד לפי פריים, ומבטלת את הצורך ב-iframes מוטמעים כדי לתמוך ב-COEP.

איך פועלת המדיניות בנושא בידוד מסמכים

מדיניות בידוד מסמכים מאפשרת לבודד מסגרות ספציפיות באפליקציות האינטרנט שלכם. שליחת הכותרת Document-Isolation-Policy עם המסמך מעניקה למסמך גישה לתכונות מתקדמות כמו SharedArrayBuffers, שהגישה אליהן מוגבלת מסיבות אבטחה. בניגוד ל-COOP ול-COEP, מדיניות בידוד המסמכים לא מטילה הגבלות על דפים שבהם המסמך יכול לתקשר או על מסגרות צאצא שהוא יכול להטמיע. מסמכים עם מדיניות בידוד מסמכים יכולים לפתוח חלונות קופצים ממקורות שונים ולתקשר איתם. הם יכולים גם להטמיע כל iframe באופן רגיל.

למדיניות בידוד המסמכים, בדומה ל-COEP, יש שני מצבים: isolate-and-require-corp ו-isolate-and-credentialless. המצבים האלה קובעים איך מטפלים במשאבי משנה ממקורות שונים שנטענים ללא שיתוף משאבים בין מקורות (CORS). במצב isolate-and-require-corp, משאבים ממקורות שונים חייבים להצהיר באופן מפורש על מדיניות המשאבים שלהם ממקורות שונים באמצעות הכותרת Cross-Origin-Resource-Policy. אם לא, הם ייחסמו. כך אפשר לוודא שהמשאבים משותפים בכוונה. לעומת זאת, במצב isolate-and-credentialless אפשר לטעון משאבים ממקורות שונים בלי כותרות CORS, אבל המערכת מסירה מהבקשה את פרטי הכניסה (כמו קובצי cookie או אימות HTTP), כך שהמשאב מטופל כאילו הוא אנונימי. המצב הזה מספק דרך פחות מגבילה אבל עדיין מאובטחת לטיפול במשאבים שאינם CORS.

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