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

מערך מחרוזות שמציינות את הנתיבים של משאבים בחבילה שצפויים להיות ניתנים לשימוש הקשר של דף אינטרנט. הנתיבים האלה יחסיים לשורש החבילה, ועשויים להכיל תווים כלליים לחיפוש. עבור לדוגמה, תוסף שמחדיר סקריפט תוכן מתוך כוונה ליצור כמה הממשק של 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], שניתן ליצור באמצעות הפרמטר extension.getURL . למשאבים ברשימת ההיתרים מוצגים עם כותרות CORS מתאימות, כדי שהם יהיו זמינים באמצעות מנגנונים כמו XHR.

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

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

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

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

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

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

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