escape angular content-security-policy angular-cli

angular - escape - ng-hide



Hacer que Angular trabaje con una polĂ­tica de seguridad de contenido(CSP) restrictiva (2)

El problema se resolvió con la última versión de Angular CLI (comenzando con 1.0.0-beta.17). El siguiente comando sirve a una aplicación que funciona porque incluye una compilación de cabecera de tiempo.

ng serve --prod

No puedo hacer que la aplicación Angular2 (final) base funcione con el siguiente CSP restrictivo.

default-src ''none''; script-src ''self''; style-src ''self''; font-src ''self''; img-src ''self'' data:; connect-src ''self''

Hay un error unsafe-eval en lang.js y dos en zone.js ¿Podrías dar una solución?

Paso para reproducir con Angular CLI.

He creado un repositorio de GitHub . También puede seguir las instrucciones a continuación.

Utilice la última CLI angular con webpack 6.0.8 y la nueva aplicación creada con las instrucciones a continuación.

ng new csp-test

Inserte en el index.html la etiqueta meta que define la siguiente política de seguridad de contenido restrictiva.

<meta http-equiv="Content-Security-Policy" content="default-src ''none'';script-src ''self'';style-src ''self'';font-src ''self'';img-src ''self'' data:;connect-src ''self''">

Entonces sirve la aplicación.

ng serve

Acceda a http://localhost:4200/ , la página no se carga ya que los scripts están bloqueados por CSP.

Los errores

lang.js

lang.js:335 Uncaught EvalError: Refused to evaluate a string as JavaScript because ''unsafe-eval'' is not an allowed source of script in the following Content Security Policy directive: "script-src ''self''".

con el código fuente.

335: return new (Function.bind.apply(Function, [void 0].concat(fnArgNames.concat(fnBody))))().apply(void 0, fnArgValues);

zone.js

zone.js:344 Unhandled Promise rejection: Refused to evaluate a string as JavaScript because ''unsafe-eval'' is not an allowed source of script in the following Content Security Policy directive: "script-src ''self''". ; Zone: <root> ; Task: Promise.then ; Value: EvalError: Refused to evaluate a string as JavaScript because ''unsafe-eval'' is not an allowed source of script in the following Content Security Policy directive: "script-src ''self''". zone.js:346 Error: Uncaught (in promise): EvalError: Refused to evaluate a string as JavaScript because ''unsafe-eval'' is not an allowed source of script in the following Content Security Policy directive: "script-src ''self''".(…)

con el código fuente.

343: if (rejection) { 344: console.error(''Unhandled Promise rejection:'', rejection instanceof Error ? rejection.message : rejection, ''; Zone:'', e.zone.name, ''; Task:'', e.task && e.task.source, ''; Value:'', rejection, rejection instanceof Error ? rejection.stack : undefined); 345: } 346: console.error(e);