Manifiesto: Recursos accesibles en la Web

Un array de cadenas que especifica las rutas de los recursos empaquetados que se espera que se puedan usar en el el contexto de una página web. Estas rutas de acceso están relacionadas con la raíz del paquete y pueden contener comodines. Para ejemplo, una extensión que inserta una secuencia de comandos de contenido con la intención de crear alguna para example.com permitiría cualquier recurso que la interfaz requiera (imágenes, íconos, hojas de estilo, secuencias de comandos, etc.) de la siguiente manera:

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

Estos recursos estarían disponibles en una página web a través de la URL. chrome-extension://[PACKAGE ID]/[PATH], que se puede generar con la extension.getURL . Los recursos incluidos en la lista de entidades permitidas se entregan con los encabezados CORS adecuados, por lo que están disponibles. a través de mecanismos como XHR.

Se bloqueará la navegación de un origen web a un recurso de extensión, a menos que el recurso aparecen como accesibles desde la Web. Ten en cuenta estos casos límite:

  • Cuando una extensión usa las APIs de webRequest o declarativeWebRequest para redireccionar una una solicitud de recurso a un recurso al que no se puede acceder desde la Web, esa solicitud también se bloquea.
  • Lo anterior se aplica incluso si el recurso al que no se puede acceder desde la Web pertenece a la .

No es necesario incluir las secuencias de comandos de contenido en la lista de entidades permitidas.

Antes de la versión 2 del manifiesto, se podía acceder a todos los recursos dentro de una extensión desde cualquier página del web. Esto permitió que un sitio web malicioso huyera con la huella digital de las extensiones que había instalado un usuario. o explotar vulnerabilidades (por ejemplo, errores de XSS) dentro de las extensiones instaladas. Limitando disponibilidad solo para los recursos que están explícitamente diseñados para ser accesibles en la Web sirve para minimizar la superficie de ataque disponible y proteger la privacidad de los usuarios.

Disponibilidad predeterminada

Los recursos dentro de los paquetes que usan manifest_version 2 o versiones posteriores están bloqueados de forma predeterminada. y debe estar incluida en la lista de entidades permitidas para su uso mediante esta propiedad.

Los recursos dentro de los paquetes que usan manifest_version 1 están disponibles de forma predeterminada, pero si lo haces configura esta propiedad, se tratará como una lista completa de todos los recursos incluidos en la lista de entidades permitidas. Se bloquearán los recursos que no aparezcan en la lista.