¿Cómo anular la política de seguridad de contenido al incluir script en la consola JS del navegador?


Estaba tratando de incluir jQuery en un sitio web existente usando la consola de esta manera:

var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-1.11.1.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);

Entonces tengo este error:

Content Security Policy: The page's settings blocked the loading of a resource at http://code.jquery.com/jquery-1.11.1.min.js ..

Durante el desarrollo es posible que desee incluir Javascript externo. Es posible que no desee copiar y pegar todo el código de jQuery, ya que no se ve bien. ¿Cómo anular la política de seguridad de contenido para fines de desarrollo?

Esto sería realmente útil para pruebas rápidas. Es posible que desee convertir el script que estoy escribiendo a una extensión del navegador más tarde en.

Nota (actualizar): Estoy escribiendo el script sobre un sitio web existente y no tengo control sobre la configuración del encabezado Content-Security-Policy.

Author: Pranjal Mittal, 2014-12-05

2 answers

Puede desactivar el CSP de todo su navegador en Firefox desactivando security.csp.enable en el menú about:config. Si hace esto, debería usar un navegador completamente separado para probar. Por ejemplo, instale Firefox Developer Edition junto con su navegador normal y úselo para probar (y no uso web normal).

Como alternativa, debería ser posible alterar el encabezado de respuesta Content-Security-Policy antes de que llegue a su navegador (a través de un proxy HTTP). También es posible para hacer esto con extensiones.

Una extensión de Chrome puede establecer su propio CSP para sus propias páginas chrome-extension://..., pero no puede alterar el CSP de una página web normal.

 29
Author: apsillers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-06 00:56:20

Utilice el setAttribute:

 script.setAttribute("type","text/javascript");
 script.setAttribute("src","http://code.jquery.com/jquery-1.11.1.min.js");
 -8
Author: Verhaeren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-05 19:59:16