Manifesto - Política de Segurança de Conteúdo

Uma chave de manifesto opcional com uma política de segurança de conteúdo de plataforma da Web que especifica restrições nos scripts, estilos e outros recursos que uma extensão pode usar. Nessa chave de manifesto, é possível definir políticas opcionais separadas para páginas de extensão e páginas de extensão no modo sandbox.

A política "páginas de extensão" se aplica aos contextos de página e worker na extensão. Isso incluiria o pop-up da extensão, o worker em segundo plano e as guias com páginas HTML ou iframes que foram abertos pela extensão. A política de sandbox se aplica a todas as páginas especificadas como uma página de sandbox no manifesto.

Política padrão

Se a política de segurança de conteúdo não for definida pelo usuário no manifesto, as propriedades padrão serão usadas para páginas de extensão e páginas de extensão no sandbox.

Esses padrões são equivalentes a especificar as seguintes políticas no seu manifesto:

{
  // ...
  "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';"
  }
  // ...
}

Nesse caso, a extensão só carregará scripts e objetos locais dos próprios recursos empacotados. O WebAssembly será desativado e a extensão não executará JavaScript in-line nem poderá avaliar strings como código executável. Se uma página de sandbox for adicionada, ela terá permissões mais flexíveis para avaliar scripts de fora da extensão.

Políticas de Segurança de Conteúdo mínimas e personalizadas

Os desenvolvedores podem adicionar ou remover regras para a extensão ou usar a política de segurança de conteúdo mínima necessária para atender às necessidades dos projetos.

Política das páginas de extensão

O Chrome aplica uma política de segurança de conteúdo mínima a páginas de extensões. Isso equivale a especificar a seguinte política no manifesto:

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

A política extension_pages não pode ser atenuada além desse valor mínimo. Em outras palavras, não é possível adicionar outras origens de script às diretivas, como adicionar 'unsafe-eval' a script-src. Se você adicionar uma fonte não permitida à política da extensão, o Chrome vai gerar um erro como este no momento da instalação:

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

Política das páginas sandbox

A política padrão para páginas no sandbox é muito mais flexível que as páginas de extensão, porque a página do sandbox não tem acesso a APIs de extensão ou acesso direto a páginas fora do sandbox. A política de segurança de conteúdo do sandbox pode ser personalizada conforme necessário.