Сообщение «Обнаружен небезопасный контент» при использовании HTTPS
При просмотре вашего сайта в браузере может появиться сообщение о том, что на странице есть небезопасное содержимое. Текст и внешний вид сообщения могут отличаться в разных браузерах.
Это означает, что страница открыта по защищенному протоколу HTTPS (ее адрес начинается на https://, а не http://), и на ней есть дополнительные элементы (изображения, CSS-стили, файлы JavaScript, шрифты), которые загружаются в браузер по небезопасному протоколу HTTP.
Чтобы исправить эту ошибку, замените название протокола http:// в адресах подключаемых файлов на https:// или просто на // (две косые черты). Вариант с двумя косыми чертами означает, что элемент страницы будет загружаться по тому же протоколу, что и сама страница.
Пример подключения элемента с небезопасного адреса
Как сделать его безопасным:
Что такое предупреждение о смешанном контенте?
«Этот сайт содержит небезопасный контент», «отображается только защищенный контент»; «Firefox заблокировал небезопасный контент». Иногда вы будете сталкиваться с этими предупреждениями при просмотре веб-страниц, но что именно они означают?
Есть два типа смешанного контента — один хуже другого, но ни один не хорош. Предупреждения о смешанном содержании указывают на то, что с веб-страницей, которую вы посещаете, что-то не так.
Что такое смешанный контент?
Все это сводится к разнице между HTTP и HTTPS . HTTP является наиболее часто используемым типом соединения — когда вы посещаете веб-сайт по протоколу HTTP, ваше соединение с веб-сайтом не защищено. Любой, кто подслушивает трафик, может видеть страницу, которую вы просматриваете, и любые данные, которые вы отправляете туда и обратно.
Вот почему у нас есть HTTPS, который буквально «HTTP Secure». HTTPS создает безопасное соединение между вами и веб-сервером. Соединение зашифровано и аутентифицировано, поэтому никто не может отслеживать ваш трафик, и у вас есть уверенность, что вы подключены к нужному веб-сайту. Это чрезвычайно важно для защиты паролей учетных записей и данных онлайн-платежей, чтобы никто не мог подслушать их.
Предупреждения о смешанном контенте указывают на проблему с веб-страницей, к которой вы обращаетесь по HTTPS. Соединение HTTPS должно быть безопасным, но исходный код веб-страницы использует другие ресурсы по небезопасному протоколу HTTP, а не по HTTPS. В адресной строке вашего веб-браузера будет указано, что вы подключены к HTTPS, но страница также загружает ресурсы с небезопасным протоколом HTTP в фоновом режиме. Чтобы вы знали, что веб-страница, которую вы используете, не полностью безопасна, браузеры отображают предупреждение о том, что страница содержит как HTTPS, так и HTTP-контент, то есть смешанный контент.
Почему это опасно
Вот почему это на самом деле опасно. Допустим, вы находитесь на странице оплаты и собираетесь ввести номер своей кредитной карты. На странице оплаты указано, что это зашифрованное соединение HTTPS, но вы видите предупреждение о смешанном контенте. Это должно поднять красный флаг. Вполне возможно, что введенные вами данные о платеже могут быть захвачены небезопасным контентом и отправлены по небезопасному соединению, что исключает преимущества безопасности HTTPS — кто-то может подслушивать и просматривать ваши конфиденциальные данные.
Поскольку HTTP не аутентифицирует веб-сервер так же, как HTTPS, возможно также, что безопасный HTTPS-сайт, извлекающий сценарий с HTTP-сайта, может быть обманным путем вытащен из сценария злоумышленника и запущен на другом безопасном сайте. Когда используется HTTPS, у вас больше гарантий, что контент не был подделан и является законным.
В обоих случаях это устраняет преимущество наличия безопасного HTTPS-соединения. Вполне возможно, что веб-сайт может иметь предупреждение о небезопасном содержании и при этом обеспечивать безопасность ваших личных данных, но мы действительно не знаем наверняка и не должны рисковать — поэтому веб-браузеры предупреждают вас, когда вы сталкиваетесь с веб-сайтом, который не правильно закодировано.
Смешанное активное содержимое против смешанного пассивного содержимого
На самом деле есть два типа смешанного контента. Более опасным является «смешанный активный контент» или «смешанный сценарий». Это происходит, когда сайт HTTPS загружает файл сценария по HTTP. Файл сценария может запускать любой код на странице, которую он хочет, поэтому загрузка сценария через незащищенное соединение полностью нарушает безопасность текущей страницы. Веб-браузеры обычно полностью блокируют этот тип смешанного контента.
Второй тип — «смешанный пассивный контент» или «смешанный контент на дисплее». Это происходит, когда сайт HTTPS загружает что-то вроде изображения или аудиофайла по HTTP-соединению. Этот тип контента не может таким же образом нарушить безопасность страницы, поэтому веб-браузеры не реагируют так резко. Тем не менее, это все еще плохая практика безопасности, которая может вызвать проблемы. Например, злоумышленник может заменить изображение вводящим в заблуждение изображением, подделав теоретически защищенную страницу. Запрос на загрузку изображения также содержит заголовки, которые содержат информацию о файлах cookie, связанных с веб-сайтом, поэтому даже загрузка изображения по небезопасному соединению может вызвать проблемы. Веб-браузеры часто отображают значок предупреждения или сообщения, а не блокируют контент полностью, поскольку этот тип смешанного контента все еще так распространен на реальных веб-сайтах. В Chrome вы увидите замок с желтым треугольником.
Что делать, когда вы видите предупреждение о смешанном контенте
Веб-браузеры обычно блокируют наиболее опасные типы смешанного контента по умолчанию. Не разблокируйте это. Если вы не можете войти на веб-сайт или ввести данные платежа в Интернете без загрузки смешанного контента, вам следует просто покинуть веб-сайт и не вводить свою информацию на незащищенный веб-сайт. Пусть владельцы сайта знают, что их сайт небезопасен и сломан.
Если вы видите предупреждение о том, что страница содержит другие ресурсы, которые могут быть небезопасными, возможно, в любом случае безопасно войти в систему. Это плохой признак, если такая проблема важна для такого важного веб-сайта, как банк, но такое предупреждение о смешанном контенте встречается очень часто.
С другой стороны, предупреждения о смешанном контенте не имеют большого значения, если вы заходите на веб-сайт, который не требует HTTPS. Все предупреждения о смешанном контенте означают, что веб-страница гарантированно выиграет от безопасности HTTPS — иными словами, в худшем случае веб-страница, которую вы посещаете, так же небезопасна, как и стандартный HTTP-сайт. Итак, если вы заходили на такой сайт, как Википедия, просто для того, чтобы прочитать несколько статей, и вы увидели предупреждение о смешанном контенте, вам не нужно слишком беспокоиться об этом. В худшем случае это так же небезопасно, как если бы вы читали статьи в Википедии через стандартное HTTP-соединение, и у вас все равно не возникло бы никаких проблем.
Почему некоторые веб-страницы имеют эту проблему
Вы увидите эту ошибку, только если есть проблема с тем, как кодируется веб-страница. Если веб-страница обслуживается по HTTPS, она также должна использовать протокол HTTPS для извлечения файлов сценариев и другого необходимого контента. Веб-разработчики должны протестировать свои веб-страницы, убедившись, что они не вызывают страшных предупреждений в браузерах пользователей. Если вы пользователь, вы ничего не можете с этим поделать — это зависит от владельца сайта.
Если вы веб-разработчик, все, что вам нужно сделать, это убедиться, что ваши HTTPS-страницы загружают контент с HTTPS-URL, а не HTTP-URL. Один из способов сделать это — заставить весь ваш сайт работать только по SSL, так что все использует HTTPS.
Если вы хотите создать страницу, которая может обслуживаться по протоколу HTTP или HTTPS и которая делает правильные действия автоматически, вы можете использовать «протокол относительных URL», чтобы браузер пользователя автоматически выбирал HTTP или HTTPS в зависимости от того, какой протокол использует пользователь. связано с. Например, относительный URL протокола для загрузки изображения будет выглядеть следующим образом: . Браузер автоматически добавит http: или https: в начало URL, в зависимости от того, что подходит. Конечно, вам нужно убедиться, что сайт, на который вы ссылаетесь, предоставляет ресурс как по HTTP, так и по HTTPS.
Веб-браузеры автоматически блокируют смешанный контент или вашу защиту, и вот почему. Если вам нужно использовать безопасный веб-сайт, который не работает должным образом, если вы не включите смешанный контент, владелец сайта должен это исправить.
Ошибка «Небезопасный контент заблокирован» (РЕШЕНО)
На своём сайте, или на других сайтах, которые вы посещаете, вы можете увидеть предупреждения вроде таких (в Google Chrome):
Небезопасный контент заблокирован Страница пытается загрузить скрипты из непроверенных источников.
В зависимости от браузера предупреждение может выглядеть так:
Firerfox заблокировал незащищённые части этой страницы.
В браузере от Windows:
Вы видите только безопасное содержимое Мы заблокировали содержимое, отправленное через небезопасное подключение, чтобы защитить вашу информацию.
Ну и в браузере Opera так:
Заблокированный небезопасный контент Opera заблокировала контент из небезопасных источников
Если вы обычный посетитель, то возникает сразу несколько вопросов:
- опасно ли находиться на таком сайте
- можно ли нажать кнопку «Показать небезопасное содержимое» или «Загрузить небезопасные скрипты»
- что вообще это означает?
Если вы ещё и веб-мастер, то вам нужно решить вопрос об исправлении этой проблемы.
Что такое заблокированный небезопасный контент
Суть этой ошибки в том, что страница, которую вы просматриваете, передаётся по HTTPS протоколу. То есть вы с неё загружаете информацию по зашифрованному соединению. Но некоторые части этой страницы используют обычный протокол HTTP, при котором данные передаются в незашифрованном виде.
Отсюда первое следствие: если страница изначально использует HTTP, то там не может возникнуть эта ошибка.
Среди «небезопасного содержимого, контента» могут быть:
- картинки
- файлы стилей
- файлы шрифтов
- скрипты JavaScript
- фреймы iframe
Если вы увидели это сообщение на небольшом сайте, то оно может просто означать, что веб-мастер перевёл свой сайт на защищённый протокол HTTPS, но что-то недоделал. Поэтому если вы не вводите важных данных, то в принципе, на такой странице можно включить «небезопасный контент». Хотя если страница отображается нормально, картинки показываются, то можно просто проигнорировать это сообщение.
Что касается сайтов, на которых вы вводите свои данные (пароль, номера банковских карт и тому подобное), то там не должна возникать эта ошибка, особенно если сайт крупный. То есть в этих случаях категорически не рекомендуется включать содержимое, передаваемое через небезопасное подключение.
Как исправить ошибку со смешенным содержимым (Mixed Content)
Этот раздел для владельцев сайтов, которым нужно исправить эту проблему.
Причина уже описана выше, только уточню, что имеются ввиду не просто ссылки c HTTP, например, ссылка на страницу или сайт http://suay.ru/ — такие ссылки не вызывают описанную ошибку. Имеются ввиду именно элементы, которые являются частью страницы, внедряются как картинки, шрифты, скрипты, стили, фреймы.
Если вы запустили свой сайт изначально на HTTP и уже добавили несколько статей, то в них ссылки на изображения будут с HTTP протоколом. В то время как в новых статья, написанных после перехода на HTTPS, ссылки будут уже с HTTPS. То есть получается, что старые статьи нужно немного подправить вручную или автоматически с помощью выполнения соответствующего запроса к базе денных. Но для сайтов на WordPress есть ещё более простой вариант — плагин SSL Insecure Content Fixer.
Установите и активируйте его, после этого будут доступны следующие основные настройки:
Выключено
Небезопасное содержимое не исправляется
Простой
Самый быстрый метод с наименьшим воздействием на производительность сайта
- скрипты, зарегистрированные wp_register_script() или wp_enqueue_script()
- стили, зарегистрированные wp_register_style() или wp_enqueue_style()
- Изображения и другие медиафайлы, загружаемые вызовом wp_get_attachment_image(), wp_get_attachment_image_src(), и т.д.
- данные, возвращаемые wp_upload_dir() (например, некоторые CAPTCHA)
- Изображения, загружаемые плагином Image Widget
Содержимое
Всё, что делает Простой, плюс:
- ресурсы в содержимом страницы
- ресурсы виджетов «Текст»
Виджеты
Всё, что делает режим Содержимое, плюс:
- ресурсы в любом виджете
Режим захвата
Всё на странице, от заголовка до подвала:
- захватить полную страницу, исправить скрипты, стили и другие ресурсы
- исключает вызовы AJAX, которые могут вызвать проблемы с совместимостью и производительностью
Захватить всё
Самая высокая возможность что-то поломать, но иногда необходимо
- захватить полную страницу, исправить скрипты, стили и другие ресурсы
- включает вызовы AJAX, которые могут вызвать проблемы с совместимостью и производительностью
Вы можете выбрать уровень исправления. Попробуйте сначала Простой, он менее влияет на производительность сайта. Если ошибка по-прежнему осталась, то последовательно переключайтесь на более охватывающие уровни.
В принципе, если изначально поднимать новый сайт на WordPress с использованием HTTPS, то такая ошибка не должна возникать. Но именно с этим я столкнулся: смешенное содержимое на сайте, который изначально был создан на HTTPS.
Далее инструкция под Google Chrome, но в других браузерах это должно делаться аналогично, либо откройте ваш сайт в Chrome. Для выяснения причин, какие именно файлы пытаются загрузиться по небезопасному протоколу, нажмите F12 и переключитесь на вкладку Console (консоль):
Найдите там строки с Mixed Content:
Mixed Content: The page at 'https://*****.ru/' was loaded over HTTPS, but requested an insecure stylesheet 'http://fonts.googleapis.com/css?family=Lato%3A300%2C400%2C700%2C900%7CMerriweather%3A400%2C700&ver=5.0.3'. This request has been blocked; the content must be served over HTTPS. (index):1 Mixed Content: The page at 'https://*****.ru/' was loaded over HTTPS, but requested an insecure stylesheet 'http://fonts.googleapis.com/css?family=Lato%3A300%2C400%2C700%2C900%7CMerriweather%3A400%2C700&ver=5.0.3'. This request has been blocked; the content must be served over HTTPS.
Строки, которые начинаются с (index) означают, что ошибка присутствует в исходном HTML коде (а не в построенной на лету DOM-модели).
Как можно убедиться, идёт попытка загрузить шрифты с http://fonts.googleapis.com. Откройте исходный код веб-страницы (Ctrl+u) и найдите там место, где стоят ссылки на этот файл. В моём случае, это шапка. Я посмотрел код шапки и файл с функциями темы, а также все другие файлы в редакторе исходного кода в админке WordPress, но не нашёл никакого упоминания http://fonts.googleapis.com. Тогда я скачал файлы темы WordPress себе на диск (локальный компьютер), и используя поиск по содержимому файлов нашёл те файлы темы, которые приводят к ошибке:
В моём случае оказался виноват файл functions.php — повторюсь, во встроенном редакторе WordPress никаких упоминаний ссылки на шрифты я не видел.
Если кому-то интересно, на скриншоте Double Commander (бесплатный, с открытым исходным кодом, двухпанельный файловый менедежер, кроссплатформенный, заменитель Total Commander) — рекомендую!
Кстати если у вас (как и у меня) Linux, то можно использовать команду grep в следующем виде:
grep -r 'СТРОКА_ДЛЯ_ПОИСКА' ПУТЬ_ДО_ПАПКИ
Например, у я распаковал файлы с темой в папку /home/mial/Downloads/7/, а найти мне нужно строку http://fonts.googleapis.com, тогда моя команда:
grep -r 'http://fonts.googleapis.com' /home/mial/Downloads/7/
/home/mial/Downloads/7/responsiveblogily/functions.php: wp_enqueue_style( 'responsiveblogily-google-fonts', 'http://fonts.googleapis.com/css?family=Lato:300,400,700,900|Merriweather:400,700', false ); /home/mial/Downloads/7/responsiveblogily/readme.txt: - Fira Sans - http://fonts.googleapis.com/css?family=Fira+Sans /home/mial/Downloads/7/responsiveblogily/readme.txt: * Fira Sans - http://fonts.googleapis.com/css?family=Fira+Sans /home/mial/Downloads/7/simple-responsiveblogily/readme.txt: - Fira Sans - http://fonts.googleapis.com/css?family=Fira+Sans /home/mial/Downloads/7/simple-responsiveblogily/readme.txt: * Fira Sans - http://fonts.googleapis.com/css?family=Fira+Sans
На текстовые файлы не обращаем внимания, а в файле functions.php я подправил http://fonts.googleapis.com на https://fonts.googleapis.com. В результате проблема со смешенным контентом исчезла.
Бесплатный SSL сертификат для субдоменов и кириллистических доменов
Кстати про переход на HTTPS. Сейчас уже необязательно платить довольно большие деньги за SSL сертификат. Многие хостеры предоставляют возможность бесплатного подключения SSL. Причём, уже даже отсутствуют ограничения (по крайней мере у некоторых): можно получить SSL сертификат для домена написанного русскими буквами и для всех субдоменов. Причём и получение, и подключение к сайту, и последующие продления выполняются на полном автомате. У моего хостера, где я держу свои сайты именно так.
После подключения SSL сертификата вам достаточно в корневой папке сайта в файле .htaccess добавить строки:
RewriteEngine on RewriteCond % !on RewriteCond % !^/.well-known/ RewriteRule ^ https://%%
Они нужны для того, чтобы происходила переадресация с HTTP на HTTPS версию сайта.
Небезопасный контент заблокирован. Исправляем проблему на сайте WordPress.
Привет, Веб-Мастер! Настроил SSL-сертификат, но столкнулся с проблемой, что браузеры ругаются на твой сайт и блокируют контент?
Не переживай, сейчас поправим и небезопасный контент будет разблокирован на 100%!
Как выглядит ошибка в браузерах
Данная ошибка по-разному показывается в различных браузерах, но корень проблемы у нее один — неверно передается контент по HTTPS-протоколу.
В Google Chrome:
Небезопасный контент заблокирован
Страница пытается загрузить скрипты из непроверенных источников.
В Opera ошибка выглядит таким образом:
Заблокирован небезопасный контент
Opera заблокировала на странице контент из небезопасных источников.
В Mozilla Firefox эта проблема отображается так:
Firefox заблокировал незащищенные части этой страницы.
В стандартном от Windows 10 браузере Microsoft Edge ошибка будет такая:
Вы видите только безопасное содержимое.
Мы заблокировали содержимое, отправленное через небезопасное подключение, чтобы защитить вашу информацию.
Решение проблемы с небезопасным контентом с помощью плагина WordPress
Самый простой и быстрый способ исправить ошибку это поставить легкий плагин SSL Insecure Content Fixer. Он не мешает загрузке страницы, что хорошо скажется на скорости, а так же не требует сложных настроек, что является несомненно большим плюсом.
Плагин имеет всего несколько настроек:
Я рекомендую сначала поставить галочку на «Простой» способ. С вероятностью в 98% это решит проблему. Если вдруг не сработало, пробуем по очереди разные варианты. Так же рекомендую снять галочку с «WooCommerce + Google Chrome HTTP_HTTPS ошибки» если вы не используете WooCommerce у себя на сайте. Все остальные настройки по-умолчанию.
Исправляем ошибку с блокировкой небезопасного контента вручную в файлах своего сайта
Для тех, кто не любит использовать плагины (что странно, не?) вот метод ручного решения.
Необходимо вручную в файлах своей темы убрать ссылки по http-протоколу на элементы, которые являются частью страницы, т.е. ссылки на шрифты, скрипты, картинки и т.д.
Пример: очень часто встречается загрузка скрипта AJAX от Google через http протокол http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js.
Второй распространенный пример с разметкой Schema.org — http://schema.org/BlogPosting или http://schema.org/WPHeader и т.д.
Так же очень частая проблема возникает после перехода сайта с http на https, в процессе ссылки на картинки остаются по незащищенному протоколу.
В итоге просто просматриваем файлы темы c поиском (ctrl+F) на предмет в коде ссылок с http:// — рекомендую именно так и вбивать в поиск, иначе если вбить просто http, то поиск найдет и правильные ссылки https, что замедлит вашу работу. Чаще всего искать нужно в файле functions.php и в файлах в папке include.
Важно. Перед внесением изменений сделайте бэкап файлов и базы данных!
Как правило, этого бывает достаточно. Но данный способ достаточно долгий и требует некоторых навыков работы с кодом. Так же из минусов — после обновления темы, все изменения слетят и придется заново проделывать туже процедуру, либо необходимо использовать дочернюю тему.
Я рекомендую все-таки решать проблему с помощью специального плагина. Это просто и быстро.