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

Как заставить загружать динамический, небезопасный контент в Chrome?

Я использую Jira в https, и у меня есть некоторые настройки, которые я хотел бы сделать с помощью дополнительного JS. Мой JS размещен на небезопасном сервере (нет доступных https).

Когда я динамически загружаю небезопасный JS файл, вставляя его в DOM (используя расширение браузера), Chrome сообщает мне:

[заблокировано] Страница https://jiraserver/browse запускает небезопасное содержимое с http://myserver/jira.js.

Я вижу, как это очень безопасно и все, но мне все равно. Я хочу загрузить этот незащищенный JS файл. Как я могу сказать, что Chrome доверяет мне и просто делает то, что я говорю?

Мой метод вставки (в расширительном коде):

document.body.appendChild((function(s){s.src='http://myserver/jira.js';return s;})(document.createElement('script')));
4b9b3361

Ответ 1

В соответствии с этой поддержкой Chrome Q & A вы можете запустить свой Chrome со следующим флагом командной строки, чтобы предотвратить проверку Chrome для небезопасного контента:

--allow-running-insecure-content

Вот некоторая документация о том, как запускать Chrome с флагами команд

Ответ 2

Chrome просто не загрузит небезопасный script на защищенной странице.

Должен ли загружаться ваш jira.js с сервера? Лучший способ вставить его на страницу - это включить его в свой комплект расширения.

var s = document.createElement('script');
s.src = chrome.extension.getURL("jira.js");
s.onload = function() {
    this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);

Если вы должны загрузить его с сервера, я полагаю, ваше расширение может сделать запрос XHR для script, а затем ввести ответ на страницу.

// make a XHR request, then...
var s = document.createElement('script');
s.textContent = codeFromXHR;
(document.head||document.documentElement).appendChild(s);
s.parentNode.removeChild(s);

Ответ 3

У меня была та же проблема: Наш клиент связывает файл CSS и js файл, размещенный на нашем сервере, в домене, который не является безопасным.

Мы разрешим его, используя Amazon CloudFront. Они сервер HTTPS, используя свои сертификаты, которые проверяются.

Это не плохое решение для использования, поскольку CDN часто является хорошей идеей, и эти ресурсы несколько статичны. (Файл CSS настроен для каждого клиента и фактически сгенерирован, но может быть настроен нормальный TTL, и CDN сбрасывается, если требуется).

Обратите внимание, что решение CDN может быть даже более доступным, чем покупка в зависимости от вашей загрузки.

Ответ 4

Я столкнулся с той же проблемой и обнаружил, что если мы вошли в нашу учетную запись google в Chrome, Chrome перестанет загружать небезопасный контент в https.

Если мы используем окно инкогнито для загрузки веб-сайта с ненадежным контентом, он будет работать.