Подтвердить что ты не робот

Как переопределить политику безопасности контента, включая script в консоли JS браузера?

Я пытался включить JQuery на существующий веб-сайт, используя консоль следующим образом:

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);

Затем я получил эту ошибку:

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

Во время разработки я могу включить внешний Javascript. Возможно, мне не захочется копировать весь код JQuery, поскольку он не выглядит аккуратным. Как переопределить политику безопасности контента для целей разработки?

Это было бы очень полезно для быстрого тестирования. Возможно, я захочу преобразовать script, который я пишу позже в расширение браузера.

Примечание (обновление): Я пишу script поверх существующего веб-сайта и не контролирую настройку заголовка Content-Security-Policy.

4b9b3361

Ответ 1

Вы можете отключить CSP для всего браузера Firefox, отключив security.csp.enable в меню about:config. Если вы это сделаете, вы должны использовать полностью отдельный браузер для тестирования. Например, установите Firefox Developer Edition вместе со своим обычным браузером и используйте это для тестирования (а не для обычного использования в Интернете).

В качестве альтернативы должно быть возможно изменить заголовок ответа Content-Security-Policy, прежде чем он попадет в ваш браузер (через HTTP-прокси). Это также можно сделать с помощью расширений.

Расширение Chrome может устанавливать собственный CSP для собственных страниц chrome-extension://..., но не может изменять CSP обычной веб-страницы.

Ответ 2

Если у вас есть контроль над разрабатываемым веб-сайтом, который, как я полагаю, вам нужно просто перечислить источники, из которых вы хотите разрешить загрузку скриптов. Для этого используйте HTTP-заголовок Content-Security-Policy в ответе, который отправляет страницу.

Дополнительная литература: http://www.html5rocks.com/en/tutorials/security/content-security-policy/#source-whitelists

Ответ 3

Используйте setAttribute:

 script.setAttribute("type","text/javascript");
 script.setAttribute("src","http://code.jquery.com/jquery-1.11.1.min.js");