Приветствую вас уважаемые читатели, не так давно я получил SSL сертификат и перевел данный блог на https. Сегодня так сказать продолжение этой истории и мы поговорим о смешанном содержимом сайта — как его найти и исправить. Начнем пожалуй с теории.
Смешанное содержимое
И так, когда человек заходит на сайт по протоколу HTTPS, его соединение с веб-сервером шифруется с помощью TLS и защищено от различных атак и перехватчиков. В случае если на странице, переданной по HTTPS, содержит какой либо контент, передаваемый по HTTP, то соединение считается частично зашифрованным: потому, что все что передаётся по HTTP, можно перехватить и изменить, следовательно такое соединение уже не защищённое. И именно такие страницы называются страницами со смешанным контентом (содержимым).
Типы смешанного содержимого.
Есть 2 группы смешанного контента: Пассивный (отображаемый) и Активное содержимое. Разница между ними заключается в уроне, который может понести сайт в случае перехвата и изменения в процессе передачи.
Так вот пассивный смешанный контент, это по сути изображения (аудио, видео) , которые вы получаете по http с других источников, и если их перехватят, максимум смогут поменять картинку (видео, аудио), на порнобанер к примеру, вашему сайту это урон по идее не нанесет, но вот пользователям думаю будет не очень приятно.
А вот активный смешанный контент (это скрипты, фреймы), несет уже борее серьезные риски. Здесь уже хакеры могут украсть личные данные, перенаправить пользователей на небезопасный сайт и т.д.
Как исправить страницу с заблокированным содержимым и что может произойти если не исправить.
Сейчас практически все самые популярные браузеры по умолчанию блокирует активное смешанное содержимое.
И вот если ваш сайт работает по протоколу HTTPS, а весь его активный контент (ну или часть его), отправлен по HTTP, то он будет заблокирован. А от сюда вытекает следующее, у вас отвалятся слайдеры, выплывающие формы и т.д. в общем все что работает за счет скриптов и ваш будет работать неправильно. А на счет пассивного контента — он пока что загружается по умолчанию, но есть одно но, любой пользователь может заблокировать его в настройках браузера, а то не есть гуд!
В общем, вся суть заключается в следующем, раз вы не поленились перейти на https, то и не поленитесь избавится от смешанного контента!
Как исправить сайт
Самое адекватно решение — перевести весь контент сайта и все его запросы на HTTPS.
В случае с картинками с других ресурсов, можно проверить можно ли их получить по https, если да то просто сменить ссылки, если нет то скачать их с тех сайтов и залить к себе на сервер, ну и соотвественно сменить путь, да и со скриптами можно поступить также)
По поводу всех ссылок, тут можно поступить по разному -заменить в ссылках протокол с http на https, либо сделать ссылки относительными, вот так:
<script src="//site.ru/script.js" type="text/javascript"></script>
На счет относительных ссылок, есть одно но, тут браузер сам выбирает протокол, в вашем случае он будет выбирать https, если то возможно, а вот если невозможно, то запрос пойдёт по HTTP, и у нас снова старая проблема)
Как быстро найти и исправить смешанное содержимое
Вариант 1й. Можно использовать сервис SSL-check, он проверит ваш сайт на наличие HTTP запросов.
Вариант 2й. Через консоль браузера, Гугл хром или Мозилы, мне больше нравиться гугл (я пошел этим путем). Как искать контент данным способом, показано в видео ниже.
И так вы нашли смешанный контент, все круто, в случае с картинками все достаточно просто, посмотрел что за картинка, нашел ее на сайте и изменил. В случае со скриптами все гораздо сложнее, особенно если у вас стоит какой нибудь движок типа того же wordpress с кучей включенных плагинов, вы же не знаете (97% пользователей обычно не знают) какой плагин какие скрипты подключает, а как узнать? В моем случае, у меня клевый хостинг (Бегет — всем рекомендую его), с крутым файловым менеджером, в котором есть функция поиска
Вбил название скрипта, он про шерстил все папки сайта, плагинов, тем и т.д. и показал файлы в которых они подключены, следовательно заходишь в них и правишь протокол (лучше предварительно проверить в браузере, можно его получить с того же сайта но по https, если нельзя можно его от туда скачать и залить к себе и прописать новый путь получения). Если у вас более убогий файловый менеджер, тогда можно скачать весь сайт на компьютер, и проделать такой же поиск по файлам к примеру при помощи NOTEPAD++.
Вот в принципе и все! Удачи вам с борьбой со смешанным содержимым. Да и сделайте бэкапы на всякий случай, мало ли что) Если остались вопросы, задавайте в комментариях.
После этого так же рекомендую проверить правильность установки SSL и если все нормально, то можно вздохнуть спокойно и закрыть этот вопрос)
День добрый! У меня в админке wordpress появляются скрипты плагина, по протоколу HTTP/ Именно в админке. Как с этим бороься?
Добрый день. Убрать протокол в подключении скриптов ://адрес-скрипта.
Здравствуйте. В моём шаблоне подключены шрифты. Сам сайт работает на https. Вопрос: как исправить http://fonts.googleapis.com/css на https://fonts.googleapis.com/css?… Чтобы шрифты были через httpS?
Здравствуйте. Да поправьте в вызове (подключении шрифта) http на https.
Вместо «http://» и «https://» вписывайте просто «//» где это возможно.