מניפסט – מדיניות אבטחת תוכן

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

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

מדיניות ברירת מחדל

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

ברירות המחדל האלה מקבילות לציון כללי המדיניות הבאים במניפסט:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

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

מדיניות אבטחת תוכן מינימלית ומותאמת אישית

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

המדיניות בנושא דפי תוספים

Chrome אוכף מדיניות אבטחת תוכן מינימלית בדפי תוספים. מקביל לציון המדיניות הבאה במניפסט:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

לא ניתן לשפר את המדיניות extension_pages מעבר לערך המינימלי הזה. במילים אחרות, לא ניתן להוסיף מקורות אחרים של סקריפט להנחיות, כמו הוספת 'unsafe-eval' ל-script-src. אם מוסיפים מקור אסור למדיניות התוסף, Chrome יציג הודעת שגיאה כזאת בזמן ההתקנה:

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

המדיניות בנושא דפי Sandbox

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