it-roy-ru.com

Как переопределить политику безопасности содержимого при включении скрипта в консоль 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's settings blocked the loading of a resource at http://code.jquery.com/jquery-1.11.1.min.js ..

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

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

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

43
Pranjal Mittal

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

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

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

47
apsillers