Если видишь Бургеркинг на всех сайтах!?

Вечером зашёл на сайт нашего клиента с мобильного телефона. Увидел баннер Burger King. Раньше такое приходилось видеть: когда на сайте появлялся вирус, для части мобильного трафика показывалась банерокрутилка или шёл мобильный редирект на другой сайт. Написал ночью разработчикам, чтоб посмотрели — вирусов не было!

Утром, по дороге в офис, смотрел ленту фейсбука и перейдя по ссылке опять наткнулся на этот баннер. Это проблема мобильного устройства, вирус на iPhone 7? В интернете по этому поводу ничего не нашёл — почистил кэш и историю браузера. Не помогло.

Сколько времени я потратил на поиск вирусов, лучше бы это был вирус:)
Только к концу дня мне попался пост разгневанного коллеги про мегафон и что они «Ох.ели». Вирус больше искать не надо, Мегафон сам подтвердил, что они подгружают баннеры путём подмены мобильного трафика.

Откуда взялись баннеры Бургеркинг?

История в следующем. Компания Мегафон модифицирует файлы, загружаемые с сайтов. В результате чего на сайтах может показываться чужая реклама. Баннер перекрывает весь контент! Как к этому относятся посетители наверно понятно.

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

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

Юридические моменты

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

Но, с другой стороны, на ТВ показывают рекламу посреди фильма. Разве кто-нибудь согласовывает с владельцами фильмов какую и сколько будут показывать рекламу? Нет, не согласовывают, ну за исключением эксклюзива. Юридическая коллизия действительно есть.

Баннер Бургеркинг на сайте

Техническая реализация показа баннеров мобильного провайдера.

Этот код мегафон вставляет в JavaScript:

!function(){function t(){(new Image).src="http://d.mobilebanner.ru/p.gif"}function e(){return window.innerWidth>=320&&window.innerWidth<=450}function n(){try{return window.self!==window.top}catch(t){return!0}}function r(){var t=document.getElementsByTagName("head")***91;0***93;,e=document.createElement("script");e.src="http://p.mobilebanner.ru/ad/base.js?",e.type="text/javascript",t.appendChild(e)}function i(t){a.parentNode.insertBefore(t,a.nextSibling)}function c(t){document.write(t.outerHTML)}function o(){for(var t=document.createElement("script"),e=Array.prototype.slice.call(a.attributes),n=0;n<e.length;n++)t.setAttribute(e***91;n***93;.nodeName,e***91;n***93;.nodeValue);return t.src="http://мой сайт.ru/js/мой файл.js?",t}var a=document.currentScript||document.scripts***91;document.scripts.length-1***93;,d=o();a.async||a.defer?i(d):c(d),t(),window.__qsrad||n()||!e()||(window.__qsrad=1,r())}();  

Код для блокировки баннеров от провайдера

$('iframe').livequery(function(){$(this).remove();},function(){});
$('script[src^="http"]').livequery(function(){$(this).remove();},function(){});
$('script[src^="\/\/"]').livequery(function(){$(this).remove();},function(){});
$('#container').siblings().unbind();
$('*').livequery(function(){$('#container').siblings().remove();},function(){});

Данный код запрещает все фреймы/скрипты появляющиеся в dom и всё что появится за пределами контейнера с id="container"

Также, можно настроить на сайте CSP и в мобильном интернете мегафона скрипты с домена d.mobilebanner.ru пропадут, в т.ч. перестанет загружаться файл d.mobilebanner.ru/p.gif и некий banner.js.

Поможет переход на HTTPS

HTTPS как раз и задуман для этого, чтобы «злоумышленник посредине» (в данном случае провайдер) не вставил свои рекламные и прочие скрипты в трафик между сервером сайта и конечным пользователем. Иначе страшная красная надпись и сайты перестанут открываться.

Как проверить сайт на встраивание кода

В инструментах разработчика мониторьте «Сеть». Если идет загрузка http://d.mobilebanner.ru/p.gif, значит ваши файлы изменяют. Если ваш филиал не подгружает, проверьте другие регионы.

Информация по теме:

Как пользователю отключить рекламу в мобильном интернете

Реклама показывается только у тех клиентов мегафона, у которых стоит включенный блок «показывать рекламу» в настройках. Это не зависит от того, какой именно сайт открываете. Единственное, может у провайдера с крупными сайтами быть договоренности о ненападении.

Если этот блок выключен (или как в ситуации с ТС — ему принудительно его отключили в мегафоне, в параметрах «запрет баннерной рекламы») — никакой рекламы показываться не будет.

Оставить комментарий

Комментарии (5)

  1. Виктор 25.07.2017 Ответить
    Есть такое, только сегодня у себя на сайте такое заметили.
    Ждем повторения, для направления претензии.
  2. Михаил
    Михаил 25.07.2017 Ответить
    Чтобы отследить надо заходить с мобильного интернета мегафона и смотреть исходный код в инструментах разработчика.
  3. Дмитрий
    Дмитрий 25.07.2017 Ответить
    Такими "вещичками" занимается не только Мегафон.
    Как пример из личного опыта - Билайн (Корбина), на домашнем интернете такое делали.
    Заходишь на сайт, а там все кнопки полосатые. Баннерочек, рекламка. Билайн фильтровал и модифицировал трафик через роутеры клиентов, решение - перепрошивка оного.
    Скоро дойдем до того что посередине разговора будут вставлять "рекламную паузу".
    Совсем охамели.
  4. Alexander 21.10.2018 Ответить
    > Скоро дойдем до того что посередине разговора будут вставлять "рекламную паузу".

    У Станислава Лема 40 лет назад был фантастический рассказ про это.