Компания
510,13
рейтинг
10 февраля 2015 в 14:36

Разработка → Странности в работе Яндекс.Метро: разбор полётов и апдейт приложения

На прошлой неделе на Хабре был популярный пост о странностях в поведении приложения Яндекс.Метро под Андроид. Мы очень серьёзно относимся к вопросам приватности наших пользователей и корректности поведения наших программ и по итогам поста провели внутреннее расследование.

Его результатом стал не только подробный рассказ о происходившем, который можно прочитать ниже, но и обновление Яндекс.Метро для Android, в котором мы исправили ошибки, приводившие к описанному поведению. Сейчас оно раскатывается в сторе. Напомним, что приложение в фоновом режиме могло отправлять данные на сервера Яндекса. Мы в изначальном посте сразу же ответили, что это баг и такое поведение не было заложено в Метро.

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

Мы хотим извиниться перед всеми, кого затронула эта проблема, сказать спасибо автору оригинального поста merced2001, а также всем пользователям, которые помогали выяснять подробности и задавали хорошие вопросы. В самом начале — очень краткие ответы на те, которые были явно заданы в том посте.

Как связан постоянный сбор информации о моем местоположении с работой Вашей карты метро?
Никак. Отправка данных, когда приложение не запущено, — ошибка. Мы исправили её в обновлении, которое выкатывается сегодня. Сбор информации в тот момент, когда приложение запущено, нужен, подробнее — ниже.

Зачем вам круглосуточные сведения о моем местоположении?
Они нам не нужны, и мы исправили приложение, чтобы такого больше не было.

Теперь подробнее.

Почему приложение отправляет данные


То, что приложения Яндекса общаются с серверами Яндекса и передают статистические данные — нормальное поведение, которое описано в пользовательском соглашении. В случае Яндекс.Метро соединение с сетью нужно в следующих случаях:

  • для геолокации пользователя — мы показываем текущее положение на карте метро, позволяя строить маршруты;
  • для обновления карт Метро, что происходит достаточно часто — особенно в Москве;
  • для сбора статистики использования приложения, которая позволяет его улучшать.

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

Как же возникла эта ошибка? Отправка статистики была вставлена в обработчик Application.onCreate(), который вызывается каждый раз при инициализации любого из процессов Метро, не учитывая, что бывают не только запуски приложения пользователем, но и фоновые вызовы процессов приложения. О том, зачем на Андроиде приложению вообще работать в фоне, я объясню чуть ниже.

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

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

Работа приложений в фоне


Многие из вас понимают, как устроена ОС Андроид, и знают, что вызов отдельных процессов приложений в фоне — это совершенно нормальное её поведение. Приложения могут подписываться на разные события и вызываться при их наступлении, обрабатывать поступающие данные и переставать работать. Например, Яндекс.Почта подписана на пуши от сервера о факте прихода нового письма. Она запускается, получает письмо, показывает нотификацию и по клику на неё позволяет прочитать письмо. Yandex.Store подписывается на события установки любых приложений.

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

Однако невзирая на то, что это в целом нормально, мы считаем, приложения не должны запускаться слишком часто — в некоторых жалобах говорили о том, что Метро запускается в фоне раз в минуту! Это явно неправильно — нужно экономить батарейку и другие ресурсы телефона. Поэтому в процессе разбора возникшей ситуации мы начали проверку всех наших приложений, чтобы постараться сократить количество фоновых запусков.

HTTPS vs. HTTP


Действительно, часть запросов некоторые наши приложения до сих пор отправляют по HTTP. Мы понимаем, что это неправильно, и постепенно переводим весь портал Яндекса, включая приложения, на HTTPS. Сразу предупредим подозрения — это не для того, чтобы скрыть факты сбора данных, — соединения вы всё равно можете увидеть, скажем, в firewall. Это для того, чтобы предотвратить перехват ваших данных третьими лицами и защитить ответы Яндекса от модификаций злоумышленниками.

Автор: @anton
Яндекс
рейтинг 510,13

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

  • –3
    Выкатили втихаря двухэтапную аутентификацию раньше мейла на 3 часа — получили ассиметричный удар в ответ.

    То, что приложения Яндекса общаются с серверами Яндекса и передают статистические данные — нормальное поведение, которое описано в пользовательском соглашении.

    Ч.Т.Д. Парни, очень хочется верить, что это был на самом деле баг, честно. Но… Хотя у вас репутация на порядок лучше, чем у конкурентов.
    • +27
      В нашем случае оно не только описано в соглашении, но ещё и очевидно — геоинформационному приложению нужно знать, где вы находитесь (чтобы показать точку на карте метро, например). Другое дело — нужно знать только в тот момент, когда приложение запущено. И именно тут была ошибка, которую мы исправили.

      А про статистику — вы действительно знаете большие приложения, которые её не собирают? Она просто необходима любому хоть сколько-то серьёзному разработчику ПО, чтобы понимать, пользуются ли его приложением вообще, как реагируют на изменения и т.п.
      • +2
        Да я ничего против и не говорю. Любое EULA подразумевает выдачу прав на обработку ряда данных пользователя при условии анонимности. И хорошо, что Вы не списали на «это так и надо», а разобрались в ситуации и отчитались перед пользователями, редкая компания так поступает.
      • 0
        Почему бы не сделать так, чтобы приложение спрашивало — если пользователь хочет, чтобы приложение собирало данные и показывало ему его местоположение, вперед. Если нет — пусть сам выберет местоположение. Само собой, последний вариант подразумевает, что никакая гео-статистика о пользователе собрана не будет.

        Удалил ваше приложение после скандала. Призываю всех бойкотировать подобные «ошибки» и подобные приложения, пока не введут возможность напрочь отключать сбор статистики, и которая по умолчанию будет отключена у всех.
        • –5
          А вы же понимаете, что примерно все приложения под Андроидом (да и под iOS) имеют встроенные и обычно неотключаемые системы статистики? Так же, как и на вебсайтах установлены системы статистики.
          • +4
            На вебсайтах их можно легко отключить, на андроиде — нет.
            • –1
              Кажется, что решать это правильнее было бы со стороны Андроида. Разве нет?
              • +5
                В Windows Phone приложение явно спрашивает, можно ему обращаться к сервисам геолокации или нет. Если не ошибаюсь, это требование сертификации в Windows Phone Store и не более того. Что мешает реализовать это на Android?
                • 0
                  Соглашусь с оратором выше, каким образом разработчик Яндекс.Метро связан с политикой сертификации Google Play?

                  Ну а вообще, давно уже есть способы управления разрешениями приложений. По крайней мере в MIUI это есть «из коробки». Если ты не хочешь, чтобы какое-нибудь приложение получало доступ к камере, ты можешь нажать «Не разрешать» при первом запросе.
              • +4
                Почему вы так хотите снять с себя ответственность? Это ведь ваши приложения следят за пользователями, именно они, без спроса и предупреждения отправляют статистику на свои сервера и адреса сторонних компаний (как вы написали ниже, из ваших приложений отправляется статистика в Фейсбук) — именно в компании Яндекс разработали приложения с функциями слежки. Никто другой за это не ответственен.
            • +1
              Не так чтобы совсем уж легко, но XPrivacy и AFWall+ могут конкретно помочь в отключении «ненужной» функциональности (нужен root, разумеется).
              • +2
                Спасибо, про XPrivacy не знал.
              • –2
                Увы, но не все устройства рутуются.
                • +10
                  Если у Вас нет рута на своём телефоне — значит его хозяин не Вы, а кто-то другой, и о какой приватности тогда вообще может идти речь?
          • +5
            Антон, я не проявляю агрессию в ваш адрес, не проявляю агрессию в адрес вашего работодателя. Я вообще в отношении живых людей стараюсь не позволять себе агрессию даже в мыслях.

            Я всего лишь озвучил свое собственное мнение безотносительно того, кто именно автор этого приложения, просто как потребитель (бывший). Мой комментарий выше, который вызвал бурную реакцию среди безразличных к проблеме людей, сливших мне карму — это часть этого мнения. Гражданское общество, не? Если вы не считаете его существенным, или не хотите его обсуждать с вашими коллегами, чтобы учесть его — ну мы поняли. Я понял.

            Пожелаю вам удачи, что ли.
  • +2
    В оригинальном посте ещё говорилось, что в теле запроса передаётся список MAC-адресов окружающих точек доступа Wi-Fi и мощность их сигнала. А вот эта информация «Яндексу» зачем?
    • +18
      Для геолокации в условиях неработающего GPS — см. второй раздел поста.
      • +4
        Из-за этого есть небольшой баг (скорее маленькая проблема). Есть такая штука как мобильный роутер (маленькая коробочка, раздающая интернет, которая всегда с собой). Так вот: при его использовании координаты определяются совершенно рандомно, пока не поймается сигнал GPS. Это можно как-то вылечить (ну там добавить такие МАКи в блеклист или что-то подобное) или проще забить?
        • +7
          Насколько я знаю, в нашей геолокации про такой случай знают и с его последствиями уже как-то борятся, но я спрошу коллег отдельно.
          • +3
            Было бы интересно узнать саму идею решения проблемы.
            • 0
              Скорее всего собирается база (пулов) MAC адресов подобных роутеров, и потом они просто игнорируются
              • 0
                Я надеюсь что всё таки не «в лоб» решается проблема
              • +2
                Скорее уж статистическими методами. Грубо говоря, если один сигнал рядом, в то время как все остальные движутся туда-сюда, то естественнее предположить, что этот одиночка дает ошибочные данные, и исключить из рассмотрения. (Как в пробках — улица не станет красной, если один водитель проехал очень медленно)
                • +1
                  Ну или если какой-то mac-адрес постоянно всплывает в географических координатах, его нужно начать игнорировать.
                • +3
                  Года два назад я устроил пробку на тихой улице: вышел из попутки и дошёл 100 метров пешком.

                  Пристальное наблюдение за пробками показывает такие же случаи там и сям: отпустил попутку, шёл по двору, зашёл в дом.

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

                  А Туганбаев рассказывал, что кворум в четыре-шесть человек, зайдя в закусочную, не раз создавал пробку на всё время трапезы.
          • 0
            Если я не ошибаюсь про это рассказывали в одной из ваших школ. Про то, как вы делали навигацию изначально — собирая данные с роутеров, в частности объяснили как справляться с переездами и видимо мобильными роутерами.
      • +2
        В вагонах метро Wi-Fi привязан к вагону, который перемещается, а не к станции метро.
    • +7
      Я не из Яндекса, но ответ мне кажется оченвидным — для геолокации по этим самым Wi-Fi-сетям.
    • +1
      Геолокация?
    • +1
      Эх, Никита. Мне всегда казалось, что отказываются от чего-то, на что когда-то сознательно согласились.
  • –13
    anton А почему нельзя просто выложить исходники? Ошибку тут и найдут, и подчеркнут, и предложат, как исправить)
    • +11
      Выложить исходники — отдельная большая работа. Потому, что это означает привести их к хорошему виду, явно взаимодействовать с сообществом и т.п. Кажется, что Яндекс.Метро — не то приложение, где это привело бы к большой пользе для кого бы то ни было.

      Открытые проекты у нас есть, но там, где это действительно нужно.
      • +3
        Не понимаю я этого страха перед выкладкой исходников и совершенной необходимости приводить их к хорошему виду. Что это — стремление не ударить в грязь лицом? Ну так, будем честными, если под этим предлогом исходники не выкладывать — то это как бы намекает, что внутри все тяп-ляп и в продакшн, но мы не хотим этого показывать, что по моему еще хуже, чем выложить «как есть».

        Если внутри кода нет какой-нибудь коммерческой секретности/ноу-хау я за то чтобы выкладывать как можно раньше, даже еще до запуска приложения — это способствует уменьшению багов и открытости. Если ноу-хау есть — вынести ее в отдельный нераскрываемый модуль а остальное открыть.
        • +3
          Не увидел в комментарии Антона ни слова про страх. В любой фирме каждый час работы стоит денег. Я согласен с Антоном, тратить их на то, что бы выложить код и поддерживать репозитарий, не стоит. Выгоду получит только тот, кому этот код нужен.
          • –1
            Не считаю что поддерживать открытый репозиторий это сложно. git push еще никого не перенапрягал
            • –3
              Конечно не сложно, но кто заплатит за потраченное время? Конечно тот человек, который получает от этого выгоду. В данном случае это не яндекс. Да и вообще не считаю полезным код приложения метро. Что лично Вы хотите там увидеть?
      • +2
        Даёшь opensource! Работа, судя по всему, вычистить всё то, что может так не порадовать людей? А потом ещё суметь это собрать чтобы было чем ответить на «не компилится!»?
        Хабра против открытых исходников? Не узнаю ресурс
  • +4
    Я просил еще галочку «opt-out». Будет?
    • +3
      Opt-out от чего именно? То, что вы описывали в посте, теперь не происходит никогда, приложение не отправляет никакой информации в фоне.

      Делать так, чтобы оно вообще не ходило в интернет для геоинформационного приложения, как нам кажется, не имеет смысла. Ему нужно обновлять карту и получать местоположение как минимум.
      • +11
        Opt-out от шпионской функции определения моего местоположения, даже когда я прямо запрещаю это делать в настройках геолокации моего телефона.

        Мне кажется, надобность в этой функции определенно есть (иначе где гарантия, что «баг» не появится снова, когда шумиха уляжется?...).
        • –9
          А что именно в этой функции шпионского?

          Мы ещё подумаем над вашим предложением, но в целом нам кажется, что геолокационное приложение, которое не использует все возможности для определения своего положения, смысла не имеет.
          • +15
            Метро — геолокационное приложение? Метро — это простой справочник о том, как доехать из 1 точки, которая вообще говоря к текущему местоположению никакого отношения не имеет, в другую точку, которая вообще говоря к текущему местоположению никакого отношения не имеет. Интерактивность на уровне простого листка бумаги.
            • +9
              Я, например, открывал это же Метро в подземке чтобы узнать справочную информацию сколько мне ехать до определённой станции. И то что текущая станция сразу же выделена, надо сказать, очень удобно. Да даже дома посмотреть сколько ехать тоже удобнее, когда выделена «родная» станция.
              • +17
                Кто же против. Пользуйтесь. Я всего лишь предлагаю сделать это отключаемым — специально для тех, кто хочет почувствовать иллюзию безопасности. Для таких, как я (судя по комментариям, я такой не один).
                • –7
                  Если вам это настолько нужно, что мешает просто выключить передачу данных в телефоне полностью?
                  • +24
                    Что ещё нужно сделать пользователю, чтобы вам было удобно?
                • +7
                  Если вы параноик — это ещё не значит, что за вами не наблюдают.
                  • 0
                    Это даже не паранойя. Это как… если бы я сидел на унитазе, а из раковины вылезла бы камера и уставилась на меня. С одной стороны, что такого, чего там кто не видел. А с другой — ну это ж полный аут. Это мое грязное белье, и пусть оно моим и остается. Не ради меня, а возможно ради тех, кто получит несчастье с ним столкнуться.
                    • +9
                      Вот никогда не понимал просьб разработать «галочку, отключающую шпионаж».
                      То есть, вы сознательно просите разработчика одного единственного приложения(почему именно этого?) создать видимость конфиденциальности в вашем телефоне?
                      И вас нисколько не смущает тот факт, что помимо этого единственного приложения, вы самостоятельно и не очень(привет, Samsung и HTC) установили ещё неизвестное кол-во других «шпионящих» приложений?
                      Да еще и под управлением ОС Android, которая разрабатывается с целью легкого получения более конфиденциальных данных потенциальных пользователей?
          • +2
            Я думаю, тут речь о том, что в настройках телефона выключен доступ к геоданным для всех программ сразу, но Метро все равно определяет положение и отправляет его на сервер.
            • +3
              В Андроиде есть отдельные права на доступ к идентификаторам wi-fi сетей.
              • +1
                Это у приложения или в настройках можно задать? Не нашел ничего такого в Note 2. Там только общий переключатель и все.
      • +8
        На самом деле я согласен в товарищем выше, по поводу опционального отключения геолокации. Мне это просто не надо: я и так знаю, где нахожусь и спокойно выберу нужную мне станцию метро самостоятельно. А вот в самой подземке каждый байт на счету (думаю не надо говорить почему).
        • –1
          А что мешает в таком случае просто отключить для этого приложения сеть? Я бы так и сделал.
          • +6
            Глянул в своём телефоне: нашёл только отключение фоновой передачи данных. Да и то только для мобильных сетей, передача фоновых данных через WiFi продолжится.
        • +1
          > А вот в самой подземке каждый байт на счету (думаю не надо говорить почему).
          Так включайте авиарежим! Ещё и батарею сильно сэкономите, ведь переключение между постоянно меняющимися и то и дело недоступными базовыми станциями довольно энергозатратно.
          • +1
            В Московском метро каждый вагон имеет свою локальную точку, раздающую Интернет. Поэтому «постоянного переключения между меняющимися станциями» не происходит.
            • +2
              Точка != базовая станция
            • 0
              Точки раздачи вай-фая не имеют никакого отношения к базовым станциям сотовых операторов.
              • 0
                Отношения минимальные, но они есть: зачастую они знают друг о друге хотя бы на уровне что «этот хрен, по этой диаграмме шумит на частоте ХХ»
                Интересно как базовые станции общаются между собой (если нет кабеля, ессно, кроме питания)…
  • +4
    Почти ничего не изменилось.
    Установил 3 приложения: Метро, Карты и Такси.
    Сразу после установки они, как раньше, не полезли в сеть и не запустились автоматически в фоне.
    Но стоило запустить одно приложение (Метро), как каждое приложение Яндекса автоматически запустилось в фоне и начало что-то отправлять.

    Скриншот
    image
    • +2
      Во-первых, исправление пока вышло только для Метро. Во-вторых, возможно оно к вам ещё не докатилось — стоит подождать час-два. В третьих — запускаться в фоне они могут (хотя и не часто, и это не полный запуск), для обмена информацией от Метрики, например. Но отправлять в фоне ничего не должны, только когда запущено хотя бы одно из них.
      • +2
        Устанавливалась последняя версия (было видно в описании обновления + приложение не запустилось само, как в предыдущей версии).
        Они не просто запускаются в фоне, а одно открытое приложение запускает остальные. И все эти приложения отправляют данные. Даже после того, как было закрыто Метро, другие приложения продолжали работать в фоне и отправлять данные.
        Не могу показать ещё скриншоты, всё удалил.
      • +3
        То есть, если запущено яндекс.такси, яндекс.метро отправляет геолокационные данные? Зачем?
        • +10
          Что бы, когда не приедет такси, показать ближайшее метро. О людях думают.
        • +4
          Когда запущено Яндекс.Такси, Яндекс.Метро никакие геолокационные данные не отправляет.

          Просто сейчас Яндекс.Метрика работает всегда через один конкретный свой инстанс (с самой свежей версией). В вашем случае это, очевидно, инстанс в Яндекс.Метро. Т.е. отправляется статистика Такси, но делается это через код Метрики в Метро.

          Я признаю, что выглядит это чуть запутано, но, увы, это технически обосновано в Андроиде. И точно не является слежкой.
          • +3
            Звучит и правда устрашающе.
            • +2
              Вы ни разу не видели legacy код на перле в 30 тысяч строк?)
    • 0
      Тут интересно другое — Яндекс.карты использует Amazon а не собственные мощности? Почему?
  • +4
    Почему Yandex такси с определенной периодичностью стучится сюда edge-star-shv-01-ams3.facebook.com?
  • –4
    А осадок остался
    • +1
      Откуда? После этого поста должен остаться приятный осадок.
      Четко и честно все объяснили, извинились, выпустили обновление и проверяют другие программы, о которых никто даже не спрашивал. И еще в комментариях отвечают на все вопросы.
      • +1
        Исподтишка следили несколько лет, хорошо что теперь перестали, но я стану больше контролировать приложения, доверие к Яндексу снизилось это осадок.
  • +5
    Резюмирую высказанные пожелания:
    1. Возможность отключения Яндекс.метрики и всяческих методов сбора статистики
    2. Возможность отключения геолокации
    3. Чистка от ненужных (с точки зрения пользователя) запросов к сети, или по крайней мере добавление возможности отказаться от них
    4. Устранение ненужных (с точки зрения пользователя) запусков приложений в фоне
    • 0
      Я так понимаю, это можно достичь, только установив модифицированную прошивку или установив xposed framework + XPrivacy.
      • +7
        Этого можно достичь со стороны разработчиков. Потому что не у всех пользователей есть возможность и желание рутануть телефон и поставить нормальную прошивку.
        • 0
          «Я хочу платную версию приложения без рекламы».
          Эти настройки должны, как мне кажется, предоставляться операционкой, т.к. не у всех разработчиков есть возможность (знания) для предоставления таких настроек. Речь не о Яндексе, конечно, а обо всём зоопарке андроид-маркета.
          • 0
            Ну это уже слишком идеалистично. Но в целом поддерживаю. AppOps уже запилили, осталось сделать то же для интентов, подписок и запросов к сети.
      • 0
        3C Toolbox еще.
  • +2
    Как насчет Я.Карты? Там тоже баг?
    Вчера после прочтения знаменательного поста, снес Метро и поставил "Брандмауэр без Root". Я.Карты сразу было замечено за многочисленными попытками куда-то полезть в aws. Еще не дебагал через прокси.
    • +1
      Нет, в Яндекс.Картах, насколько нам известно, такого бага нет. Мы их даже специально проверяли по итогам всей этой ситуации.

      Они при этом не были запущены? В фоновом режиме отправляли?
      • +2
        Если смотреть в Settings/Диспетчер приложений/Выполняется, то да, запущено Я.Карты (1 служба Сервис авторизации Яндекса и 1 процесс). Только я что-то не припомню, чтобы я их запускал.
        В инет лезут Я.Карты и Я.Парковки (которое точно не запущено).
      • +1
        Вот сейчас Яндекс.Карты фоновый *кешированный* процесс. Т.е. как бы ну совсем ничего не делают. Лезут. 20 pending accesses.
        Зачем?
  • +1
    А теперь вопрос. Какого чёрта в запросе на показ текущего местоположения это?
    3 различных идентификатора: clid, uuid и andoid_id;
    • –2
      Это не текущее местоположение, это общая статистика, которая вместо реального запуска приложения, передавалась всё время. Это мы исправили в апдейте, как и написали.
  • +1
    В Яндекс.Метро под iOS можно при первом запуске запретить использовать gps, а так же в настройках выключить через симку выход в интернет. Неужели такого функционала нет под Android?
  • +4
    «На прошлой неделе на Хабре был популярный пост» — а на этой уже апдейт с исправленными ошибками.
    Хм… написать, что ли, пост про глюки Яндекс.Карт? :)
    • +3
      И не забудьте пройтись по кошмарной иконке карт… Вдруг исправят. :)
  • +2
    А что на счет версии под iOS?

    11.083572 192.168.254.254 -> 213.180.204.103 HTTP 687 GET /metro/startup?manufacturer=Apple&uuid=b4c6XXXXXXXXXXa9b3621cc96c3074&deviceid=17304ECA-XXXX-XXXX-A791-5E29CXXXXXFB&metro_schemes=1&scalefactor=1.00&screen_width=1024&screen_dpi=163&device_type=tablet&protocol_version=2&app_version_name=1.36&locale=ru-RU&os_version=8.1&operatorid=1&ifv=5F81XXXX-BFD7-XXXX-XXXX-002AD34D2327&model=iPad2%2C7&screen_height=768&app_platform=ipad&app_version=136&countrycode=250&query_hosts=1 HTTP/1.1

    Скажите пожалуйста, зачем Вам знать, какой у меня uuid, deviceid,operatorid, ifv?
    Разве это не явная привязка к устройству и однозначная идентификация владельца?
    Где тут анонимность?
    • 0
      Спасибо, удалил приложение и под iOS
  • +1
    В мире ПО, где разработчик сидит часами, заставляя лететь запросы куда надо, и делая так, чтобы где надо они принимались, такая ошибка — конечно же баг, который получился сам собой.
  • +5
    Практически у каждой станции метро стоит специальный человек, который кричит: «бесплатная карта метро, бесплатный календарик!» и вот сюрприз… на обратной стороне реклама. Давайте запретим им печатать рекламу, пускай просто бесплатно раздают карты и календарики.

    Это я к чему. Если приложение платное — его владельцу нужно выкатывать подобные претензии.
    Если приложение бесплатное — это личное дело владельца, как его монетизировать. Показами рекламы, сбором информации или продвижением бренда. Более того, не могу не заметить, что реально использовать передаваемую Яндексу информацию можно только в одном случае: откровенном сливе статистики по конкретному пользователю со стороны Яндекса или вашего сотового оператора, что очень мало вероятно в сценарии с коллекторами и другими мутными личностями. Что касаемо «большого брата» — есть и другие способы (не очень заметные и более топорные, что очень важно).

    Был описан баг, Яндекс его оперативно устранил, подробно рассказал — респект и уважение. Если вы не согласны на условия использования бесплатного приложения — не пользуйтесь им. Берите бесплатную карту метро вместе с рекламой или пользуйтесь информационными стендами метрополитена. Думаю, что на этом ресурсе всем понятно, что в случае с Яндексом цена за бесплатное приложение — это некая статистика или информация об окружающем мире пользователя. Более того, сбор информации о точках доступа помогает Яндексу не сколько зарабатывать, сколько предоставлять более качественные услуги в других сервисах (те же карты).

    P.S. Спасибо за описание поведения Метрики. Я несколько раз замечал, что если грохнуть «лишние» фоновые процессы, то падали не связанные с ними приложения.
  • 0
    Может я и пожалею об этом, но новый план такой:
    1.Собираем всю инфу сервисом как и раньше
    2.Только пользователь запустил приложение-шлем весь архив данных по HTTPS
  • +3
    Не не, серьёзно?
    Команда разработчиков, гигант в рунете… Может я конечно и параноик, но мне смешно.

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

    Извините, не удержался.
  • +3
    Я уж не надеюсь на ответ, но все же попробую ещё раз спросить. Останавливаем все приложения Яндекса, запускаем я.навигатор. Наблюдаем, как в сеть ломанулись помимо него еще я.карты и я.парковка. В двух словах можно объснить необходимость этого?
    • +3
      «Нам надо» =)
  • +2
    Вот чего я всегда не понимал в яндекс метро, так это странные маршруты, которые он периодически предлагает. Казалось, ну что может быть проще, оттестировать маршруты? Да их можно вообще полностью покрыть тестами! Вот например, предлагается от Тульской до Александровского Сада добираться через кольцо:



    А в обратную сторону уже предлагает ехать по-человечески, напрямую.
  • –1
    Не понимаю истерики, которая вокруг приложения развернулась. Если вы действительно заботитесь о конфиденциальности и анонимности, вам нужна другая карта метро.
    Вот такая


    Конечно, для вашего города, а то не все в Москве живут, да.
    А то ужас-ужас, компания, которая продает рекламу, следит за нами! Естественно следит, им же надо продавать геотаргетированную рекламу.
    А товарищ майор вас всегда сможет выследить в метро, обратите внимание, сколько камер там висит на каждой станции и в вагонах.
  • +1
    «AVL Pro Antivirus & Security » утверждает следующее

    Программа врет? Или Яндекс.Метро все таки хочет слишком многого?

    (Простите за размер картинки)

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

Самое читаемое Разработка