Манифест — доступные веб-ресурсы,Манифест — доступные веб-ресурсы

Массив строк, определяющий пути к упакованным ресурсам, которые, как ожидается, можно будет использовать в контексте веб-страницы. Эти пути указываются относительно корня пакета и могут содержать подстановочные знаки. Например, расширение, которое внедряет сценарий контента с целью создания пользовательского интерфейса для 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, доступны по умолчанию, но если вы установите это свойство, оно будет рассматриваться как полный список всех ресурсов из разрешенного списка. Ресурсы, не указанные в списке, будут заблокированы.