Manifiesto: Política de Seguridad del Contenido

Una clave de manifiesto opcional que contiene una política de seguridad del contenido para la plataforma web que especifica restricciones para las secuencias de comandos, los estilos y otros recursos que puede usar una extensión. Dentro de esta clave de manifiesto, se pueden definir políticas opcionales independientes tanto para las páginas de extensiones como para las de la zona de pruebas.

La política "Páginas de extensiones" se aplica a los contextos de las páginas y los trabajadores de la extensión. Esto incluye la ventana emergente de la extensión, el trabajador en segundo plano y las pestañas con páginas HTML o iframes que la extensión abrió. La política de zona de pruebas se aplica a todas las páginas especificadas como páginas de zona de pruebas en el manifiesto.

Política predeterminada

Si el usuario no define la política de seguridad del contenido en el manifiesto, se usarán las propiedades predeterminadas tanto para las páginas de extensiones como para las de la zona de pruebas.

Estos valores predeterminados equivalen a especificar las siguientes políticas en tu manifiesto:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

En este caso, la extensión solo cargará secuencias de comandos y objetos locales de sus propios recursos empaquetados. Se inhabilitará WebAssembly y la extensión no ejecutará JavaScript intercalado ni podrá evaluar las cadenas como código ejecutable. Si se agrega una página de zona de pruebas, tendrá permisos más flexibles para evaluar las secuencias de comandos desde fuera de la extensión.

Políticas de Seguridad del Contenido mínimas y personalizadas

Los desarrolladores pueden agregar o quitar reglas para su extensión, o usar la política de seguridad del contenido mínima requerida, para satisfacer las necesidades de su proyecto.

Política de Páginas de Extensiones

Chrome aplica una política de seguridad del contenido mínima para las páginas de extensiones. Equivale a especificar la siguiente política en tu manifiesto:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

No se puede flexibilizar la política extension_pages más allá de este valor mínimo. En otras palabras, no puedes agregar otras fuentes de secuencia de comandos a las directivas, como agregar 'unsafe-eval' a script-src. Si agregas una fuente no permitida a la política de tu extensión, Chrome mostrará un error como el siguiente durante la instalación:

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

Política de Páginas de Zona de Pruebas

La política predeterminada para las páginas de zona de pruebas es mucho más flexible que para las páginas de extensiones, ya que la página de la zona de pruebas no tiene acceso a las APIs de extensión ni acceso directo a páginas que no son de zona de pruebas. La política de seguridad del contenido de la zona de pruebas se puede personalizar según sea necesario.