מניפסט – משאבים נגישים לאינטרנט

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

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

לאחר מכן המשאבים האלה יהיו זמינים בדף אינטרנט דרך כתובת ה-URL chrome-extension://[PACKAGE ID]/[PATH], שאותה אפשר ליצור באמצעות method extension.getURL. המשאבים ברשימת ההיתרים מוצגים עם כותרות מתאימות של CORS, כך שהם זמינים באמצעות מנגנונים כמו XHR.

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

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

לא צריך להוסיף את סקריפטים של תוכן לרשימת ההיתרים.

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

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

משאבים שנמצאים בחבילות שמשתמשות ב-manifest_version 2 ואילך חסומים כברירת מחדל, וצריך להוסיף אותם לרשימת ההיתרים לשימוש דרך הנכס הזה.

משאבים בתוך חבילות שמשתמשות ב-manifest_version 1 זמינים כברירת מחדל, אבל if הגדרתם את הנכס הזה, המערכת תתייחס אליו כרשימה מלאה של כל המשאבים שברשימת ההיתרים. משאבים שלא מופיעים ברשימה ייחסמו.