Если видишь Бургеркинг на всех сайтах!?
Вечером зашёл на сайт нашего клиента с мобильного телефона. Увидел баннер 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)