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

350

Сегодня утром, после обновления моего браузера 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"`

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

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

Appulus
источник
Эй, я решил только, выполнив: googl.com/maps with //www.googl.com/maps Это будет работать без блокировки контента
Ram Balwad
ссылка для электронной коммерции не работает (ошибка - запрошенная вами страница не найдена)
Soleil - Mathieu Prévot

Ответы:

417

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

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

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

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

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

<link rel="stylesheet" href="https://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) также полезна для объяснения того, что представляет собой смешанный контент, и, как указано в приведенном выше абзаце, на самом деле предоставляет подробные сведения о том, как отображать страницу независимо от:

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

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

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

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

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

Appulus
источник
82
Лучше было бы просто удалить протокол полностью: src="//code.jquery.com.... Браузер будет использовать протокол, по которому страница была загружена.
Блендер
17
О чувак! Команда разработчиков FF застрелилась в ногу с этой - классной идеей, совершенно нереальной реализацией. Нет упорства для отключения страниц и нет белого списка! (когда вы знаете и доверяете сайту со смешанным контентом)
Raad
6
@Raad Вы просто не можете доверять сайту со смешанным контентом. Хотя владельцы сайтов могут быть невиновны, все маршрутизаторы, несущие http-запрос, могут не быть. Я бы подал отчет об ошибке владельцам сайта.
альфа-мышь
6
@Raad и эти сотни, если не тысячи сайтов находятся в процессе раскрытия заголовков, которые могут содержать личную информацию, предназначенную для шифрования с помощью SSL-соединения ... честно говоря, я не вижу команду разработчиков FF в качестве безответственного лица в этом дело ...
Ассимилятор
3
Чрезвычайно расстраивает, когда блокирует абсолютно безвредные действия. Кстати, о молнии! У меня есть плагин, который использует Ziptastic для поиска города и штата почтового индекса, который вы вводите в форму адреса. Этот плагин не работает: все, что я хочу сделать, это использовать API-интерфейс restful для захвата крошечного объекта JSON - без кубиков. Это TSA безопасности браузера! Давай вернем наши штаны, ради дерьма!
Крис Бейкер
137

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

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

Ален Жакомет Форте
источник
1
Просто примечание, если оно используется на локально сохраненной веб-странице, это может привести к тому, что браузер будет бесполезно искать сценарий, что значительно
задержит
52

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


Ничего Выбор

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

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

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

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


Весь выбор

Ответ iDevelApp потрясающий.

DRaehal
источник
1
Знаете ли вы, чтобы включить смешанный контент на Chrome?
Файзан
1
@Faizan: Из этого ответа : «В адресной строке справа должен быть значок« щит », вы можете нажать на него, чтобы запустить небезопасный контент».
fuglede
27

Поместите нижеприведенный <meta>тег в <head>раздел документа, чтобы заставить браузер заменить незащищенные соединения (http) на защищенные соединения (https). Это может решить проблему смешанного контента, если соединение может использовать https.

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

Если вы хотите заблокировать, добавьте тег ниже в <head> :

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
тапас талукдер
источник
1
Не работает в хроме? работал в firefox. upgrade-insecure-requestsКажется, чтобы обновить http тп https звонки.
Аникет Тхакур
1
Это плохая идея? Нет ли причины, по которой существует политика безопасности?
medley56
12

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

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

Брайан Кот-Чанг
источник
10

Это дало ошибку из-за безопасности. Для этого, пожалуйста, используйте «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"
Амит Наранивал
источник
7

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

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
sramay
источник
5

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

bigpotato
источник
4

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

RewriteEngine on

RewriteCond %{REQUEST_SCHEME} =http

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Массимилиано
источник
3

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

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

src="//code.jquery.com
Кришнадас ПК
источник
2

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

ирен саломо
источник
это сработало для меня, спасибо. Можете ли вы объяснить мне, что происходит?
Мантей Сингх
2

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

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

тапас талукдер
источник
0

Я только исправил эту проблему, добавив следующий код в заголовок:

    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
РКАИСС Юсеф
источник
-9

Если ваш сервер приложений является weblogic, убедитесь, что запись WLProxySSL ON существует (и также не следует комментировать) в файле weblogic.conf в каталоге conf веб-сервера. затем перезапустите веб-сервер, он будет работать.

Прасад Редди
источник