مانیفست - منابع قابل دسترسی وب، مانیفست - منابع قابل دسترسی وب

آرایه ای از رشته ها که مسیرهای منابع بسته بندی شده را مشخص می کند که انتظار می رود در زمینه یک صفحه وب قابل استفاده باشند. این مسیرها نسبت به ریشه بسته هستند و ممکن است حاوی حروف عام باشند. به عنوان مثال، یک برنامه افزودنی که یک اسکریپت محتوا را با هدف ایجاد یک رابط سفارشی به عنوان 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 در دسترس هستند.

پیمایش از یک منبع وب به یک منبع برنامه افزودنی مسدود خواهد شد مگر اینکه منبع به عنوان وب قابل دسترسی فهرست شده باشد. به این موارد گوشه ای توجه کنید:

  • هنگامی که یک برنامه افزودنی از webRequest یا DeclarativeWebRequest API برای هدایت یک درخواست منبع عمومی به منبعی استفاده می کند که قابل دسترسی به وب نیست، چنین درخواستی نیز مسدود می شود.
  • موارد فوق صادق است حتی اگر منبعی که در وب قابل دسترسی نیست متعلق به پسوند تغییر مسیر باشد.

خود اسکریپت های محتوا نیازی به درج مجوز ندارند.

قبل از مانیفست نسخه 2 همه منابع موجود در یک برنامه افزودنی از هر صفحه ای در وب قابل دسترسی بودند. این به یک وب‌سایت مخرب اجازه می‌دهد تا از افزونه‌هایی که کاربر نصب کرده است انگشت نگاری کند یا از آسیب‌پذیری‌ها (مثلاً باگ‌های XSS ) در برنامه‌های افزودنی نصب شده سوء استفاده کند. محدود کردن در دسترس بودن فقط به منابعی که صراحتاً برای دسترسی به وب در نظر گرفته شده اند، هم سطح حمله موجود را به حداقل می رساند و هم از حریم خصوصی کاربران محافظت می کند.

در دسترس بودن پیش فرض

منابع داخل بسته‌هایی که از manifest_version 2 یا بالاتر استفاده می‌کنند به‌طور پیش‌فرض مسدود شده‌اند و باید برای استفاده از طریق این ویژگی در لیست مجاز قرار گیرند.

منابع داخل بسته‌هایی که از manifest_version 1 استفاده می‌کنند به‌طور پیش‌فرض در دسترس هستند، اما اگر این ویژگی را تنظیم کنید، به عنوان یک لیست کامل از همه منابع مجاز در نظر گرفته می‌شود. منابعی که لیست نشده اند مسدود خواهند شد.