Способы оплаты Abuse

Смешанный контент на сайте: как выявить и исправить ошибки в разных CMS

28.01.2025, 17:38

Представьте, вы открываете сайт через HTTPS, но часть его контента все равно загружается с помощью незащищенного соединения. Это и есть тот самый Mixed Content — смешанный контент. Такие страницы считаются небезопасными: данные, передаваемые через HTTP, могут быть перехвачены или изменены злоумышленниками.

Современные браузеры стремятся не ставить пользователей под угрозу взлома: они либо блокируют опасные запросы, либо автоматически меняют HTTP на HTTPS, если это возможно. Однако из-за этого сайт может работать некорректно, а в консоли разработчика появляются ошибки вроде "This request has been blocked".

Как понять, что на сайте есть Mixed Content?

Узнать о проблеме можно несколькими способами:
1. Иконка в браузере. Некоторые браузеры показывают значок, сигнализирующий о частичной защите соединения.
2. Ошибки в консоли разработчика. Откройте инструменты разработчика (Ctrl+Shift+I), перейдите на вкладку "Консоль". Браузер укажет, какой ресурс загружается через HTTP, и что он с этим делает – блокирует или меняет протокол.

Как исправить Mixed Content?

Важно! Перед внесением изменений сделай бэкап. Это поможет вернуть всё обратно, если что-то пойдёт не так.

WordPress
1. Замените все ссылки HTTP на HTTPS в базе данных. Для этого:
— подключитесь к серверу через SSH или веб-терминал.
— перейдите в директорию сайта:

 cd ~/site_dir/public_html

— запустите команду замены ссылок:

 wp search-replace 'http://example.com' 'https://example.com'

2. Если используется плагин Elementor, выполните:

 wp elementor replace-urls 'http://example.com' 'https://example.com'

3. Очистите кэш:

wp cache flush

Проверьте сайт. Если проблема осталась, проверьте ссылки вручную.

Bitrix
1. Замените абсолютные ссылки вроде http://ваш_сайт/bitrix/admin/*** на относительные: /bitrix/admin/***. Для поиска таких ссылок используйте инструмент поиска в файловом менеджере.
2. Проверьте медиаконтент и кастомные компоненты. Замените ссылки HTTP на HTTPS.
3. Если сайт подключает сторонние скрипты, исправьте ссылки на них.

Joomla
1. Проверьте, что HTTPS включён для всего сайта:
— войдите в панель администратора.
— перейдите в "Система" – "Общие настройки" – "Сервер".
— убедитесь, что параметр "Включить SSL" установлен на "Весь сайт".
2. Настройте переадресацию на HTTPS через файл .htaccess:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

3. Для некоторых компонентов, например VirtueMart, включите SSL в настройках модуля.

OpenCart
1. Проверьте настройки HTTPS в файлах config.php и admin/config.php. Все ссылки HTTP замените на HTTPS.
2. В панели администратора перейдите в "Система" – "Настройки" – "Сервер" и включите "Использовать SSL".
3. Если проблема осталась, проверьте консоль разработчика и исправьте ссылки вручную.

Дополнительный совет для всех CMS

Добавьте в файл .htaccess правило, которое автоматически обновляет протоколы запросов:

Header always set Content-Security-Policy: upgrade-insecure-requests

Это подскажет браузеру использовать HTTPS, где это возможно. Если смешанный контент всё ещё остаётся, исправьте проблемные ссылки вручную.

Теперь вы знаете, как справиться с Mixed Content и сделать ваш сайт безопасным!