Как проверить сайт на наличие смешанного контента с помощью Netpeak Spider

Use Cases
18Like
6Comments
Share
Как проверить сайт на наличие смешанного контента с помощью Netpeak Spider

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

Предупреждение браузера о незащищённом контенте

О том, что такое смешанный контент, как его проверить и избавиться от проблемы, я расскажу в этом посте.

1. Что такое смешанное содержимое

Смешанное содержимое (или смешанный контент) — это частично незашифрованный контент. Он возникает, когда исходный HTML-код загружается через соединение HTTPS, но некоторые его элементы (картинки, видео, таблицы стилей и т.д.) загружаются через незащищённое соединение HTTP.

Так выглядит предупреждение о смешанном контенте в браузере Google Chrome:

Предупреждение о смешанном контенте на сайте браузера Google Chrome

Это уведомление уже о блокировке страницы:

Уведомление о блокировке страницы браузера Google Chrome

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

Разумеется, это негативным образом сказывается на продвижении сайта.

2. Как найти смешанное содержимое на сайте

Проблему можно определить с помощью инструментов разработчика Chrome, но это займёт много времени для проверки больших сайтов, а особенно — если таких сайтов у вас сотни.

Решением послужат регулярные выражения и функция «Парсинг» в Netpeak Spider.

Для обнаружения скриптов смешанного контента будем использовать следующее выражение:

(?i)(?:<script[^<>]*http:[^<>]*>(?:(?!<\/script>)[\s\S])*(?:(?!<\/script>)[\s\S])*<\/script>)|(?i)(?:<script[^<>]*>(?:(?!<\/script>)[\s\S])*http:(?:(?!<\/script>)[\s\S])*<\/script>)

Для поиска href ссылок:

(?i)<a [^<>]*href="http:\/\/.{0,8}.DOMAIN[^<>]*>(?:(?!<\/a>)[\s\S])*<\/a>

Для обнаружения другого смешанного контента, содержащего URL, локацию, DOCTYPE и прочих элементов:

(?i)<(?!a )[^<>]*(?:src|href|content|location|url|origin)[="\(]{0,2}http:(?:(?!§)[^<>])*>

Перейдите в Netpeak Spider и в краулере проделайте следующее:

  1. Откройте «Настройки» → «Парсинг». Скопируйте скрипты, приведённые выше, и дайте каждому из них название.
  2. Выберите тип поиска RegExp и область «Весь исходный код».

    Настройки парсинга в Netpeak Spider

  3. На боковой панели отметьте минимум параметров и проверьте, отмечен ли параметр «Парсинг».

    Параметры на боковой панели краулера Netpeak Spider

  4. В строку вставьте домен сайта, который хотите проверить на наличие смешанного контента, и нажмите на кнопку «Старт».
  5. По окончании анализа перейдите на вкладку «Отчёты» → «Парсинг» и выберите «Все результаты». Там вы можете посмотреть, нет ли на страницах с протоколом https незащищённых скриптов и элементов.

    Результаты парсинга в таблице краулера Netpeak Spider

3. Как устранить смешанное содержимое

Чтобы устранить смешанное содержимое, нужно все HTTP-ссылки преобразовать в HTTPS-ссылки либо настроить на сервере 301 редирект.

Если на сайте обнаружены незащищённые элементы, проверьте, есть ли с них ссылки с протоколом http://, и также исправьте их на протокол https://.

Можно также выгрузить нужные данные с незащищённых страниц и загрузить на свой сервер.

Подводим итоги

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

Чтобы быстро проверить веб-ресурс на наличие этой ошибки, используйте регулярные выражения и функцию парсинга в краулере Netpeak Spider. Затем устраните смешанный контент, поменяв ссылки с http:// на https://.

А у вас был опыт поиска и борьбы со смешанным контентом? Поделитесь в комментариях :)