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

Uma chave de manifesto opcional contendo uma política de segurança de conteúdo da plataforma da Web que especifica restrições nos scripts, estilos e outros recursos que uma extensão pode usar. Com essa chave de manifesto, podem ser definidas políticas opcionais separadas para páginas de extensões e páginas de extensões em sandbox.

As "páginas de extensão" A política 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 do sandbox se aplica a todas as páginas especificadas como uma página do 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 as páginas de extensão e para as de extensão no sandbox.

Esses padrões são equivalentes à especificação das seguintes políticas no 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 carregará somente scripts e objetos locais de seus próprios recursos empacotados. O WebAssembly será desativado, e a extensão não executará o JavaScript inline 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ínima e personalizada

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 do projeto.

Política de páginas de extensão

O Chrome aplica uma política de segurança de conteúdo mínima para páginas de extensão. 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 flexibilizada 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 origem 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 de páginas sandbox

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