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