СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H Как я поборол вмешательство билайна в пользовательский трафик в черновиках


Эта небольшая история для меня закончилась благополучно(Но только для меня, а не для всех остальных абонентов билайна.), и надеюсь, что больше оно не всплывет.

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

Посмотрел в исходники страницы, выяснить, что это. Оказалось — это «Мини кабинет» от билайна, который они от широкой души своей решили воткнуть во ВСЕ! посещаемые пользователями страницы. Ну под https только не могут, но под basic access authentication втыкают не глядя).

Вставляется этот элемент javascript-ом:
<!-- [start] toolbar body -->
<script name="ets-anchor" type="text/javascript" src="http://toolbar.beeline.ru/ets/scripts/Anchor.js"></script>
<!-- [end] toolbar -->

Вот этот именно кусок кода провайдер и вставляет во все подряд страницы. В итоге в body втыкается iframe с нехилой такой страницей, размером побольше среднего сайтика…

Естественно, мне такое самовольство провайдера жутко не понравилось.
Сам тулбар находится в iframe, но с iframe никто не мешает поиграться владельцу сайта…
Плюс, я с ресурса хочу получать html файл в том виде, в котором он предоставляется, а не с изменениями, которые провайдер воткнул в файл по неизвестным мне причинам.
Ну и, как мне кажется, тут есть нарушение законодательства.
Первое, что я сделал — это позвонил и спросил, откуда «это» и почему мне его подключили без моего согласия. И спросил как отключить.
На последний вопрос ответили. На первый только поБэМекали.

Выполнил я инструкции по отключению, и Желто-полосатое чудо пропало со страниц. Но только визуально, ибо тот javascript, который рисовал новый элемент оставался висеть в хедере html-ки.
Т.е. провайдер все так-же продолжал изменять пользовательский трафик.

Дальше переписка на pomogite@beeline.ru (попутно потролил их в твитере и по телефону 0611):
Доброго дня.
Меня зовут Антон.
телефон +7-XXX-XXX-XX-XX

Я пользуюсь интернетом, предоставляемым вами на своем телефоне.
Вы внедряете во все посещаемые страницы при использовании вашего интернета на телефоне чужеродный код, который называете «мини кабинетом» moskva.beeline.ru/customers/press/news/details/mini-kabinet-beeline-vsegda-pod-rukoy/

Отключение этого «мини кабинета» не приводит к прекращению внедрения кода в страницы а лишь скрывает добавляемый им чужеродный визуальный элемент.
Простыми словами — вы вмешиваетесь в трафик пользователей.
Этими действиями вы нарушаете УК РФ и закон «О связи».
Скриншоты с визуальным элементом и внедряемым кодом приложены.

Прошу немедленно прекратить вмешивание в трафик пользователей.
Если вы не прекратите нарушение вышеобозначенных законов, то я буду вынужден обратиться с заявлением в прокуратуру Москвы.


Ответ получил на следующий день. Но какой!!!:
Добрый день, Антон!

Получили комментарии от разработчиков Toolbar:

1. О невозможности использования CDN:

Мы целенаправленно не пользуемся технологией CDN в силу ряда существенных ограничений, например, вложенная библиотека jQuery несет в себе несколько важных внутренних модификаций. Другой причиной отказа от CDN стало желание уменьшить количество запросов за счет включения библиотеки jQuery в итоговый файл с js-кодом.

2. «Паразитный» трафик:

Можно долго спорить о том, лишние ли 133 Кб. Но если вглядеться в приведённый скриншот, то можно заметить, что Anchor.js кэшируется (посмотрите на статус 304), т.е. он загружается лишь раз, а затем браузер проверяет, не менялся ли файл с момента загрузки. Также заметим, что весь трафик с домена beeline бесплатен. Возможно, в следующей версии объем скрипта будет уменьшен, а метод кэширования будет заменен на истечение срока, чтобы сократить количество обращений к серверу, т.к. файл не меняется в течение длительного времени.

3. Использование window.onload для отрисовки тулбара:

В ряде случаев $(document).ready, возможно, было бы достаточно, но для корректного отображения тулбара использовать windows.onload более грамотно. Нам необходимо знать позицию и прокручиваемую область страницы для правильной отрисовки тулбара, а для этого нужно знать о таких элементах, как картинки, которые имеют прямое влияние на прокручиваемую часть страницы и загружаются уже после того, как DOM окончил загрузку. Соответственно, в нашем случае $(document).ready будет недостаточно. Причем использование windows.onload никак не влияет на скорость отображения и функциональность загружаемой страницы.

4. Использование document.getElementById:

Тут мы хотели бы выразить благодарность за codereview и отметить, что в будущих версиях тулбара мы планируем избавиться от legacy-кода.

В итоге получаем следующие выводы:
— Необходимости в использовании CDN нет;
— Загружаемый javascript загружается только один раз и не тарифицируется;
— Использование window.onload оправдано.

При возникновении дополнительных вопросов, будем рады на них ответить!


Ну блин нифига себе… Специально делают вид, что не понимают? Как думаете?

В ответ я написал следующее:
Извините, но я говорил о факте незаконного внедрения кода(модификация клиентского трафика) а не о технической реализации данного кода.


Через некоторое время получил письмо, что мое обращение передано техническим специалистам.
И через 2 дня случилось чудо!
Добрый день, Антон!

Ваш запрос выполнен. «Мини-кабинет» (Toolbar «Билайн») полностью отключен на Вашем номере техническими специалистами. Примите, пожалуйста, извинения за неудобства.


Чудо в том, что убрали модификацию трафика лично для меня только на моем номере. Но у всех остальных все осталось по прежнему.

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

А всем хабраюзерам согласных с тем, что модификация трафика провайдером — не очень честное занятие желаю успехов в борьбе с подобным поведение провайдеров…
Думаю, если подобных обращений в билайн будет больше, то полосатики задумаются…

комментарии (21)

0
ruikarikun ,  
Хмм, а они это всем абонентам подключили? Я пользуюсь билайн и конкретно описанной вами вредоносной деятельности со стороны этой компании не вижу.
0
cramen ,  
0
ruikarikun ,  
>>>Сервис доступен абонентам предоплатной системы расчетов Московского филиала.
Спасибо, меня миновало.

А так пришлось бы тоже в прокуратуру писать, эх…
0
cramen ,  
Ну я в прокуратуру не писал. Хватило разговора с билайном. Но если бы не убрали, пришлось бы писать.
0
norlin ,  
ИМХО, надо написать даже постфактум. Сам я, к счастью, не абонент билайна…
+3
dinikin ,   * (был изменён)
Допустим я владелец ресурса, на который билай добавляет свой код.
На сколько я понимаю, так как iframe создается библиотекой jQuery, если её действие перехватить, то мы можем при создании фрейма подменить урлы билайна на свои или вообще иммитировать личный кабинет пользователя.
С одной стороны мы фактически создаем фишинговый сайт из своего ресурса, что и так можем сделать без участия билайна, но с другой стороны, т.к. кабинет билайна подставляется на всех сайтах, юзер доверяет билайну и думает, что на всех страницах именно кабинет билайна. Т.е. это непаханное поле для мошенников.
0
shifttstas ,  
+ вы можете иметь доступ к этому кабинету со свой страницы…
0
dinikin ,  
Разве? Фрейм на другом домене и к нему из джаваскрипта согласно Same-origin policy доступ нельзя получить.
0
Zibx ,  
Но можно удалить элемент и создать внешне похожий.
0
achekalin ,  
https ваше (и наше) все, увы.
+2
+3 –1
NorthDakota ,  
Омг…
image
+1
msuhanov ,  
Это лоббизм интернет-провайдеров, желающих продолжать наглое вмешательство в интернет-трафик пользователей средствами NAPT.
–1
achekalin ,  
Ну и что, почему бы это нулю голосов не оказаться «одним процентом» от величины, большей нуля (минимум, от 0+2=2 голосов; если учесть, что 1% = 0, а 5% = 2, то система уравнений уже становится интересной!)

Провайдеры и трафик считают не просто суммарный, а тот, что им отдаст оборудование, а не тот, что юзер получил. Оверхед может быть в десяток процентов, но кого это волнует?
0
beliakov ,  
Кто-то промазал :)
+1
shifttstas ,  
Еще один стимул перейти ВСЕМ на https и подсвечивать сайты с HTTP only как недоверянные
–2
heathen ,  
И всем покупать сертификаты, даже если это домашняя страничка, на которую заходит полтора рудокопа в столетие?
+3
Zibx ,  
0
dom1n1k ,  
Не пользуюсь интернетом БЛ, но адресок скрипта в черный списочек внёс…
0
kukutz ,  
Интересно, а CSP habrahabr.ru/company/yandex/blog/206508/ позволяет избавиться от этого, или Билайн заголовки Content-Security-Policy: стрипает из HTTP-ответа сервера?
0
achekalin ,  
Я как-то им звонил с тем же, и мне отвечали, что они ни в коем случае такого не делают. Вот ни-ни, и все тут!

Не то чтобы обманывают, но все же.

Интересно, в каких регионах «би-счастье» уже внедрено?
0
cramen ,  
в Московском