it-roy-ru.com

Почему у меня внезапно возникает проблема «Заблокированная загрузка смешанного активного контента» в Firefox?

Сегодня утром, после обновления моего браузера Firefox до последней версии (с 22 до 23), некоторые из ключевых аспектов моего бэк-офиса (веб-сайта) перестали работать.

Глядя на журнал Firebug, сообщалось о следующих ошибках:

Blocked loading mixed active content "http://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
Blocked loading mixed active content "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"`

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

Что означает вышеизложенное и как мне его решить?

332
Appulus

Я нашел это сообщение в блоге , который прояснил несколько вещей. Процитируем самый важный бит:

Смешанный активный контент теперь заблокирован по умолчанию в Firefox 23!

Что такое смешанный контент?
Когда пользователь посещает страницу, обслуживаемую по HTTP, его соединение открыто для прослушивания и атак типа "человек посередине" (MITM). Когда пользователь посещает страницу, обслуживаемую по HTTPS, его соединение с веб-сервером аутентифицируется и шифруется с помощью SSL и, следовательно, защищается от перехватчиков и MITM-атак.

Однако если страница HTTPS включает в себя содержимое HTTP, часть HTTP может быть прочитана или изменена злоумышленниками, даже если главная страница обслуживается по HTTPS. Когда страница HTTPS имеет HTTP-контент, мы называем этот контент "смешанным". Веб-страница, которую посещает пользователь, только частично зашифрована, поскольку часть содержимого извлекается незашифрованной по HTTP. Блокатор смешанного содержимого блокирует определенные HTTP-запросы на страницах HTTPS.

В моем случае решение состояло в том, чтобы просто обеспечить включение jquery следующим образом (обратите внимание на удаление протокола):

<link rel="stylesheet" href="//code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css" type="text/css">
<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"></script>

Обратите внимание, что временное "исправление" состоит в том, чтобы щелкнуть значок "щит" в верхнем левом углу адресной строки и выбрать "Отключить защиту на этой странице", хотя это не рекомендуется по понятным причинам.

ОБНОВЛЕНИЕ: Эта ссылка со страниц поддержки Firefox (Mozilla) также полезно для объяснения того, что представляет собой смешанный контент, и, как указано в предыдущем абзаце, действительно предоставляет подробные сведения о том, как отображать страницу, независимо от:

Большинство веб-сайтов будут продолжать работать в обычном режиме без каких-либо действий с вашей стороны.

Если вам нужно разрешить отображение смешанного контента, вы можете сделать это легко:

Щелкните значок щита "Смешанный контентный щит" в адресной строке и выберите "Отключить защиту на этой странице" в раскрывающемся меню.

Значок в адресной строке изменится на оранжевый предупреждающий треугольник Значок предупреждения идентификации, чтобы напомнить вам, что отображается небезопасный контент.

Чтобы отменить предыдущее действие (повторно заблокировать смешанный контент), просто перезагрузите страницу.

398
Appulus

Это означает, что вы звоните http с https. Вы можете использовать src="//url.to/script.js" в своем теге скрипта, и он будет автоматически обнаружен.

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

127
Alain Jacomet Forte

При отсутствии функции белого списка вы должны сделать выбор "все" или "ничего". Вы можете полностью отключить смешанную блокировку контента.


Ничего не выбрал

Вам нужно будет навсегда отключить смешанную блокировку контента для текущего активного профиля.

В "Awesome Bar" введите "about: config". Если это ваш первый раз, вы получите "Это может привести к аннулированию гарантии!" сообщение.

Да, вы будете осторожны. Да, вы обещаете!

Найти security.mixed_content.block_active_content . Установите его значение false .


Весь выбор

iDevelApp Ответ обалденный.

51
DRaehal

Если вы хотите разрешить запрос смешанного содержимого, добавьте тег ниже в тег <head>.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Если вы хотите заблокировать, добавьте следующий тег в тег <head>:

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
21
tapas talukder

Если вы используете внутреннюю службу через AJAX, убедитесь, что URL-адрес указывает на https, это устранило ошибку для меня.

Начальный AJAX URL: " http://XXXXXX.com/Core.svc/ " + ApiName
Исправлено AJAX URL: " https://XXXXXX.com/Core.svc/ " + ApiName,

10
Bryan Cote-Chang

Это дало ошибку из-за безопасности. Для этого, пожалуйста, используйте "https", а не "http" в URL сайта.

Например :

   "https://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
   "https://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"
9
Amit Naraniwal

На соответствующей странице, которая делает смешанный контент по вызову https to http, который недоступен, мы можем добавить следующую запись в соответствующую и избавиться от ошибки смешанного контента.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
7
sramay

У меня была такая же проблема, потому что я купил шаблон CSS, и он взял javascript внешний файл javascript через http://whatever.js.com/javascript.js. Я зашел на эту страницу в своем браузере, а затем изменил ее на https://whatever..., используя SSL, и это сработало, поэтому в своем теге HTML javascript я просто изменил URL-адрес, чтобы использовать https вместо http, и это сработало.

5
Edmund

Для принудительного перенаправления по протоколу https вы также можете добавить эту директиву в .htaccess для корневой папки.

RewriteEngine on

RewriteCond %{REQUEST_SCHEME} =http

RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
4
Massimiliano

Я сталкиваюсь с той же проблемой, когда мой сайт переходит с http на https. Мы добавили правило для всех запросов на перенаправление http на https.

Вам нужно добавить правило перенаправления для межсайтового запроса, но вы должны удалить правило перенаправления для внешнего js/css.

2
tapas talukder

@ Blender Комментарий - лучший подход. Никогда не кодируйте протокол где-либо в коде, поскольку изменить его будет сложно, если вы перейдете от http к https. Так как вам нужно вручную редактировать и обновлять все файлы.

Это всегда лучше, так как он автоматически определяет протокол.

src="//code.jquery.com
2
Krishnadas PC

Я обнаружил, что если у вас есть проблемы с включением или смешиванием вашей страницы с чем-то вроде http: //www.example.com, вы можете это исправить, поставив // www. Example вместо

1
irene salomo