מגדיר אוסף של דפי תוספים שיוצגו במקור ייחודי שנמצא בארגז חול. מדיניות אבטחת התוכן שבה משתמשים בדפים של תוסף בארגז חול מצוינת במפתח "content_security_policy"
.
לשימוש בארגז חול יש שתי השלכות:
- לדף ש פועל בארגז חול לא תהיה גישה לממשקי API של תוספים ולא תהיה גישה ישירה לדפים שהם לא בארגז חול (יכול להיות שהוא יתקשר איתם באמצעות
postMessage()
). - דף ששוכן בארגז חול לא כפוף למדיניות Content Security Policy (CSP) שבה משתמשים שאר התוסף (יש לו ערך CSP נפרד). כלומר, למשל, אפשר להשתמש בסקריפט מוטבע וב-
eval()
.
לדוגמה, כך מציינים ששני דפי תוסף יוצגו בארגז חול עם CSP בהתאמה אישית:
{
...
"content_security_policy": {
"sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
},
"sandbox": {
"pages": [
"page1.html",
"directory/page2.html"
]
},
...
}
אם לא מציינים זאת, ערך ברירת המחדל של "content_security_policy"
הוא sandbox allow-scripts allow-forms
allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';
.
אפשר לציין את הערך של CSP כדי להגביל עוד יותר את ה-Sandbox, אבל הוא חייב לכלול את ההוראה "sandbox"
ואסור שהוא יכלול את האסימון allow-same-origin
(מידע נוסף זמין במפרט של HTML5 כדי לראות אסימונים אפשריים ל-Sandbox).
הערה: צריך לפרט רק דפים שאתם מצפים שנטענים בחלונות או במסגרות. משאבים שנעשה בהם שימוש בדפים בארגז חול (כמו גיליונות סגנונות או קובצי מקור של JavaScript) לא צריכים להופיע ברשימה pages
, כי הם ישתמשו בארגז החול של המסגרת שמטמיעים אותם.
'שימוש ב-eval() בתוספים ל-Chrome' כולל פרטים נוספים על הטמעת תהליך עבודה של הרצה בארגז חול, שמאפשר להשתמש בספריות, שאחרת היו יכולות לגרום לבעיות בתפקוד במסגרת מדיניות ברירת המחדל של אבטחת תוכן של התוסף.