מניפסט – ארגז חול

אזהרה: החל מגרסה 57, Chrome לא יאפשר יותר תוכן חיצוני מהאינטרנט (כולל מסגרות וסקריפטים מוטמעים) בדפים שמופעלים בארגז חול. במקום זאת, יש להשתמש ב-webview.

ההגדרה הזו מגדירה אוסף של דפי אפליקציה או דפי תוסף שיוצגו במקור ייחודי שמופעל בארגז חול, ואפשר גם להשתמש במדיניות Content Security Policy עבורם. לפעילות בארגז חול יש שתי השלכות:

  1. לדף שמופעל בארגז חול לא תהיה גישה לממשקי API של תוספים או אפליקציות, ולא תהיה גישה ישירה לדפים שלא פועלים בארגז החול (ייתכן שהוא ייצור איתם קשר דרך postMessage()).
  2. דף שנמצא בארגז חול לא כפוף למדיניות Content Security Policy (CSP) ששאר האפליקציה או התוסף משתמשים בה (יש לו ערך CSP נפרד). לדוגמה, אפשר להשתמש בסקריפט מוטבע וב-eval.

    לדוגמה, כך מציינים ששני דפי תוסף יוצגו ב-Sandbox עם מדיניות CSP בהתאמה אישית:

    {
      ...
      "sandbox": {
        "pages": [
          "page1.html",
          "directory/page2.html"
        ]
        // content_security_policy is optional.
        "content_security_policy":
            "sandbox allow-scripts; script-src 'self'"
      ],
      ...
    }
    

    אם לא מציינים שום אפשרות, ערך ברירת המחדל של content_security_policy הוא sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';. אפשר לציין את הערך של CSP כדי להגביל עוד יותר את ארגז החול, אבל הוא חייב לכלול את ההוראה sandbox ולא יכול להיות עם האסימון allow-same-origin (מידע נוסף זמין במפרט של HTML5 כדי לראות אסימונים אפשריים של Sandbox). כמו כן, יכול להיות שמדיניות ה-CSP שציינתם לא תאפשר טעינה של תוכן אינטרנט חיצוני בדפים שמופעלים בארגז חול.

הערה: צריך לציין רק דפים שציפיתם שייטענו בחלונות או במסגרות. משאבים שנעשה בהם שימוש בדפים בארגז חול (למשל גיליונות סגנונות או קובצי מקור של JavaScript) לא צריכים להופיע ברשימה sandboxed_page. הם ישמשו את ארגז החול של הדף שבו מוטמעים אותם.

"שימוש ב-eval בתוספים ל-Chrome. בבטחה". מספק פרטים נוספים על הטמעת תהליך עבודה של הרצה בארגז חול (sandboxing) שמאפשר להשתמש בספריות שאחרת היו בעיות בהפעלה שלהן בהתאם למדיניות ברירת המחדל של Content Security Policy של התוסף.

ניתן לציין דף Sandbox רק כשמשתמשים ב-manifest_version 2 ומעלה.