Manifiesto: Política de Seguridad del Contenido

Una clave de manifiesto opcional que contiene una política de seguridad de contenido de plataforma web que especifica restricciones en 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 zonas de pruebas.

Las "páginas de extensión" se aplica a los contextos de páginas y 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 abrió la extensión. La política de la 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 utilizarán las propiedades predeterminadas tanto para las páginas de extensiones como para las de extensiones de zona de pruebas.

Estos valores predeterminados son equivalentes a la especificación de 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 cadenas como código ejecutable. Si se agrega una página de zona de pruebas, esta tendrá permisos más flexibles para evaluar secuencias de comandos fuera de la extensión.

Políticas de seguridad del contenido mínimas y personalizadas

Los desarrolladores pueden agregar o quitar reglas para sus extensiones, o bien usar la política de seguridad del contenido mínima requerida para satisfacer las necesidades de sus proyectos.

Política de Páginas de Extensiones

Chrome aplica una política mínima de seguridad del contenido 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 reducir 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 inhabilitada 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 tolerante que con las páginas de extensión, ya que la página de la zona de pruebas no tiene acceso a las APIs de extensiones ni acceso directo a páginas que no están en la zona de pruebas. La política de seguridad del contenido de la zona de pruebas se puede personalizar según sea necesario.