Métodos endossados pelos aplicativos do Google Chrome
Use bibliotecas de modelos
Use uma biblioteca que oferece modelos pré-compilados e está tudo pronto. Ainda é possível usar uma biblioteca que não oferece pré-compilação, mas isso exigirá algum trabalho de sua parte e há restrições.
Você precisará usar o sandboxing para isolar qualquer conteúdo para o qual queira fazer as coisas do "eval". O sandboxing eleva o CSP no conteúdo que você especifica.
Conteúdo local da sandbox
O sandbox permite que páginas específicas sejam exibidas em uma origem exclusiva em área restrita. Essas páginas são então isentas de sua Política de segurança de conteúdo. As páginas em área restrita podem usar iframes, scripts em linha e eval () (e os dois últimos são os evitados). Isso consertará 'inseguro-in-line' e 'inseguro-eval'.
- Use scripts inline na sandbox
- Incluir sandbox no manifesto
Acessar recursos remotos
Você pode buscar recursos remotos via XMLHttpRequest e servi-los via blob :, data :, ou sistema de arquivos: URLs. Isso deve corrigir o problema de busca do jQuery.
Requisito de manifesto
Para fazer o cross-origin XMLHttpRequests
, você precisará adicionar uma permissão para o host do URL remoto.
Origem cruzada XMLHttpRequest
Busque o URL remoto no aplicativo e exiba seu conteúdo como blob:
URL.
Eu não acho que você possa fazer nada disso. Para corrigir os cabeçalhos de resposta unsafe-eval
e unsafe-inline
, somente o proprietário do script pode corrigir o código ou, se estiver em domínio público, você poderá corrigi-lo. Tudo isso é provavelmente uma correção única.
Hacks
UnsafeWindow
Injeção de script de conteúdo
Os hacks, no entanto, têm desvantagens porque sabem causar aberturas de segurança pelo menos no primeiro, definitivamente.