Михаил Болдырев, генеральный директор студии Клондайк

«Вечером зашел на сайт нашего клиента с мобильного телефона. Увидел баннер 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, значит ваши файлы изменяют. Если ваш филиал не подгружает, проверьте другие регионы.

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

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

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

Журналист, новостной редактор, работает на сайте с 2009 года. Специализация: интернет-маркетинг, SEO, поисковые системы, обзоры профильных мероприятий, отраслевые новости рунета. Языки: румынский, испанский. Кредо: Арфы нет, возьмите бубен.