Откуда на сайтах появляется реклама, которой там не было
easy

Откуда на сайтах появляется реклама, которой там не было

Всё дело в незащищённом HTTP-трафике

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

Всё дело — в отсутствии защищённого соединения между вашим сайтом и его читателем. Интернет-провайдер пользуется этим и встраивает в ваш сайт дополнительную рекламу. Рассказываем, как это возможно и что сделать, чтобы такого не было.

Как обычно открывается сайт в браузере

Чтобы понять, как появляется лишняя реклама, посмотрим на то, как обычно открываются сайты в браузере. У нас про это есть отдельная статья, вот основное оттуда:

  1. Браузер берёт адрес сайта и с помощью специальных запросов определяет, на каком именно сервере находятся нужные файлы.
  2. Браузер посылает на этот сервер запрос: «дай мне вот такую страницу».
  3. Сервер отправляет браузеру страницу в виде исходного кода — HTML-файлы, стили, скрипты, картинки и прочие файлы.
  4. Браузер получает их, обрабатывает и по ним рисует страницу на устройстве пользователя.

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

Весь этот обмен происходит через существующую инфраструктуру интернета: данные передаются от одного сервера к другому по цепочке. В этой цепочке обязательно участвует интернет-провайдер — это компания, которая обеспечивает конечным читателям доступ в интернет. Если вы смотрите сайты с мобилки, ваш провайдер — ваш мобильный оператор. Если у вас домашний интернет с вайфаем, у вас какой-то другой оператор — например МГТС, «Дом.ру», «Севенскай» и прочие. 

В стародавние времена все эти данные были открыты и провайдер видел всё, чем вы обмениваетесь с сервером. 

Откуда на сайтах появляется реклама, которой там не было
Обычная ситуация: ваш запрос и ответ сервера виден провайдеру

Откуда появляется лишняя реклама на сайте

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

Например, когда вы делаете запрос на сайт, который заблокирован на территории России, за техническую реализацию этой блокировки отвечает провайдер. Он видит, что вы запросили что-то запрещённое, и показывает вам соответствующую страницу. 

Некоторые провайдеры, желая дополнительно заработать, делают так:

  • смотрят, какой сайт хочет открыть пользователь;
  • проверяют, защищённое это соединение или нет;
  • если нет — провайдер видит исходный код сайта и добавляет к нему свою рекламу, сверху, снизу или где-то сбоку;
  • после этого модифицированная страница отправляется пользователю, и он видит сайт с рекламой, которой там изначально не было.

Откуда на сайтах появляется реклама, которой там не было
Плохая ситуация: провайдер подмешивает в ответ сервера собственный контент — рекламу

Что делать, чтобы защитить свой сайт от такой рекламы

Для защиты сайтов от перехвата и изменения трафика используют HTTPS и SSL-сертификаты. Эти сертификаты шифруют все данные, которые передаются с сервера и обратно, поэтому влезть в исходный код сайта не получится. 

Такой подход к шифрованию и защите трафика давно стал стандартом: шифруют соединение не только банки и интернет-магазины, но и любые другие сайты. Просто теперь так принято. 

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

Откуда на сайтах появляется реклама, которой там не было
Хорошая ситуация: провайдер не видит, чем именно вы обмениваетесь с сервером, поэтому не может ничего расшифровать и подмешать

Теперь минутка технических подробностей.

Как работает SSL и HTTPS

Это короткая версия нашей статьи про SSL и безопасный интернет. Если хотите разобраться подробнее, почитайте статью, а пока вот основное оттуда.

Стандартный протокол передачи данных в вебе, который используется с 1992 года, — HTTP. Минус HTTP в том, что он передаёт данные в открытом виде. Если на сайте с HTTP ввести данные карточки, то они полетят по каналам связи незашифрованными. Злоумышленник может их перехватить и прочитать — достаточно, например, просто «прослушивать» весь трафик в беспроводной сети.

Чтобы решить проблему незашифрованных данных, в 2000 году придумали HTTPS — HyperText Transfer Protocol Secure, безопасный протокол передачи гипертекста. Внутри себя он работает как обычный HTTP, но снаружи шифрует весь свой трафик. Даже если кто-то вклинится посередине, он увидит только шифр, который не получится разобрать.

За шифрование страниц в HTTPS отвечает протокол SSL — Secure Sockets Layer, уровень защищённых сокетов. Сокеты — это такие виртуальные соединения между компьютерами. Защищённый сокет означает, что данные, которые идут внутри от одного компьютера к другому, — в безопасности. Если браузер открывает страницу по такому протоколу, то он перед отправкой на сервер шифрует всё, что вы делаете или вводите на сайте. В обратную сторону это тоже работает.

Что в итоге

Запомните и расскажите другим, как защититься от лишней рекламы на своих сайтах:

  1. Весь наш трафик проходит через провайдеров.
  2. Если соединение не защищено, провайдер видит, что именно отдаёт нам сайт, — буквально тексты страниц. 
  3. Некоторые нечестные провайдеры добавляют свой код в незащищённые сайты, чтобы показывать дополнительную рекламу.
  4. Чтобы защититься от этого, используют SSL-сертификаты и настраивают HTTPS.

Что дальше

В следующий раз мы превратим незащищённый HTTP-сайт в защищённый: выпустим и установим бесплатный SSL-сертификат и настроим доступ к серверу по HTTPS.

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Попробуйте бесплатное в «Яндекс Практикуме»
В «Яндекс Практикуме» есть бесплатные курсы, на которых можно получить полезные навыки для работы в ИТ: от Git и Excel до основ Python и облачных технологий.
Учиться бесплатно
Попробуйте бесплатное в «Яндекс Практикуме» Попробуйте бесплатное в «Яндекс Практикуме» Попробуйте бесплатное в «Яндекс Практикуме» Попробуйте бесплатное в «Яндекс Практикуме»
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy