Пользователь
0,0
рейтинг
20 августа 2014 в 21:29

Разработка → Теперь любой сайт может узнать адрес вашей страницы в VK?

Наткнулся на сервис позволяющий разместить на своём сайте js-код, который определяет ID посетителя без авторизации. Пользователь об этом совершенно не догадывается, т.к. определение ID происходит при загрузке любой страницы сайта без всяких вопросов об авторизации.

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

Т.е. например, допустим, занесло вас на какой-то порно-сайт, а через полминуты в контакте бот пишет вам в ЛС или на стене предложение приобрести рекомендуемый именно вам товар или услугу в соответствии с разделами, которые вы посещали на сайте, или в соответствии с поисковыми запросами, через которые вы попали на этот сайт.

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

Создатели сервиса утверждают: «Никакого взлома или иных противоправных действий сервис не осуществляет. Мы идентифицируем заходящего человека и накапливаем открытую информацию.». Но я считаю незаконным сам факт идентифицикации. Поправьте меня если я не прав.

Ретаргетинг вконтакте работает похожим образом, но он не даёт доступ к профилям попавшим в группу ретаргетинга.

Может найдётся кто-то среди хабра-специалистов по вэб-безопасности кто сможет осветить эту тему в деталях?



Ссылку на сам сервис найти не сложно. Вопрос в другом: как вообще это стало возможно в таких масштабах?

Поковырял код, но мало что понял. Какая-то xss-магия с фреймами.

UPD
Используется невидимый виджет авторизации
a.oberon @aoberon
карма
27,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

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

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

  • 0
    Все верно. Похожий метод использует интернет-магазин «Enter»: добавив товары в корзину и перейдя позже в социальную сеть, ты получишь таргетированную рекламу о том, что у тебя есть товары в корзине, не забудь их оплатить.
    • –5
      Ещё раз: то что делает этот сервис — не таргетированая реклама. Сервис выуживает ссылку на ваш профиль VK и далее может делать что угодно с вашей информацией. Даже подписать вас на смс-рассылку, или составить ваш поисковый профиль по фразам которые вы вбиваете в поисковиках.
      Обычная таргетированая реклама не даёт прямой доступ к вашей личной информации.
  • +5
    По-моему ВК довольно давно позволяет это делать. Так же как и Одноклассники. Не хватает им программы вознаграждения за найденные уязвимости.
    • 0
      upd. Программа вознаграждения за найденные уязвимости ВКонтакте: hackerone.com/vkcom

      И пост Андрея Рогозова про эту программу vk.com/wall6492_5214
    • 0
      Это ещё ничего, ведь можно плагинами защититься. А когда автоматически подключают платные подписки, это жесть :((
      Нужно или контентный счёт заводить отдельный (с нулём средств на нём), или USSD-командами блокировать. Последний вариант менее надёжен (у всех операторов разные правила и разные сервисы).
  • +7
    А почему «теперь»? Это же не новая «фича», на сколько я заню.
    Есть плагины для браузеров, например, блокирующие межсайтовые запросы (можно по спискам белый/черный). Забавно видеть, при использовании подобного плагина, на сколько сайты сейчас завязаны на внешние ресурсы — многие просто оказываются не рабочими без посторонних ресурсов.
    • +1
      без авторизации определить ID пользователя никогда не было возможно официальными методами
      • –2
        от того, что метад не описан в документации по API он не перестаёт быть частью языка, на котором реализован.
        • 0
          вопрос не в языке или API а в политике конфиденциальности VK
          • –1
            Ну так проблема-то не в «официальности», а в том, что товарищи из VK позволяют вытворять.
            // Виноват не тот, кто эксплуатирует, а тот, кто позволяет эксплуатировать
            • –1
              верно
            • –1
              >> // Виноват не тот, кто эксплуатирует, а тот, кто позволяет эксплуатировать

              Т.е. если забыл закрыть квартиру и из нее все вынесли, то воров искать не надо, т.к. сам виноват что «дыру в безопасности» не закрыл? Странная у вас логика.
              • 0
                Тут больше подходит другая аналогия: банк, которому вы доверели свои ценности забыл закрыть хранилище.
              • 0
                Во-первых. в данном случае (да и вообще с любыми компьютерными проникновениями) это не «забыл закрыть квартиру», а «сам добровольно выставил всё перед подъездом, и ещё на всякий случай выдал ключи от квартиры всему микрорайону».
                Во-вторых, если забыл закрыть квартиру и всё вынесли, то вне зависимости от того, надо ли искать воров или нет — вина в произошедшем в первую очередь лежит на забывшем закрыть квартиру.
                А то так можно и до законодательного запрета запираться докатиться…

                P.S. вот если вы забыли закрыть окно и из него выпал ребёнок. Кто виноват? Ребёнок или вы?
                • 0
                  Да что тут обсуждать-то? Мне честно лень лезть в пользовательское соглашение ВК, но когда человек создает приложение, которое используется для авторизации пользователя на внешнем сайте, то с вероятностью 100% он соглашается с тем, что не будет использовать этот виджет для обманных действий. То есть устанавливая код авторизации на сайт, владелец обещает не пользовать такие уловки. Ведь именно с помощью махинаций на сайте можно получить такой эффект.
                  • 0
                    Мне <...> лень лезть в пользовательское соглашение ВК

                    А мне — нет. И единственное, в EULA ВСекты, что относится к описанной выше проблеме, это
                    5.3. Пользователю при использовании Сайта запрещается:
                    <...>
                    5.3.11. осуществлять незаконные сбор и обработку персональных данных других лиц;

                    С другой стороны, это относится к ручному парсингу vk.com, а не к работе с ОТКРЫТЫМИ САМИМ ПОЛЬЗОВАТЕЛЕМ даными.
                    Потому что
                    5.4. Пользователь несет личную ответственность за любую информацию, которую размещает на Сайте, сообщает другим Пользователям, а также за любые взаимодействия с другими Пользователями, осуществляемые на свой риск.

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

                    Да и вообще, то, что вы сказали выглядит как «мы даём вам в руки автомат и три сменных рожка патронов. Но вы соглашаетесь с тем, что не будете стрелять».

                    (хотя это были выдержки из основного EULA)
                    Касательно правил для разработчиков — тоже можно всё сделать не нарушая их.
                    • 0
                      > ОТКРЫТЫМИ САМИМ ПОЛЬЗОВАТЕЛЕМ

                      Вот теперь осталось только доказать что пользователь дал обсуждаемой системе согласие на работу с этими данными или слиться.
                      • 0
                        > открытыми публично
                        А не
                        > предоставленными по соглашению

                        Не путайте. А то так можно договориться до того, что я не даю вам согласие на вашу работу с моими комментариями, адресованными вам.
                        • 0
                          Ну и с каких пор, данные, которые передаются только с согласия пользователя в конкретное приложение стали публичными.
                          • 0
                            С тех пор, с которых вы не прочитали статьи и пропустили то, что речь идёт только о публично доступных данных. И того, что способ работает без предоставления данных какому бы то ни было приложению. Работате только на основе публично доступных данных. И даже без прохождения авторизации.
                            • 0
                              >а через полминуты в контакте бот пишет вам в ЛС или на стене предложение
                              >приобрести рекомендуемый именно вам товар

                              Запись на стене не требует разрешений?

                              > Используется невидимый виджет авторизации

                              Не проверял, но если это так, то только вопрос какие права запросит это «приложение».
                • 0
                  Во-первых, пользователь передает свои данные сервису на определенных условиях. Как правило, там сказано, что получить доступ к данным (и публикации на странице) можно только с согласия пользователя. Так что ключи кому-то может и давал (ряду приложений). Но тут явно другие люди сделали отмычку.

                  Во-вторых, очень печально что судя по вашему высказыванию, вас останавливает от краж чужого только замок и полиция. Чужая собственность она чужая не зависимо от того висит замок или нет.

                  Ну в третьих, не надо передергивать. Ребенок многое делает не полнимая сути. Поэтому пример вообще не корректен. Тогда уж надо спросить так — вы не закрыли в офисе окно и в него выпрыгнул ваш коллега?
                  • 0
                    Точно так же и пользователь заходящий на сайт с невидимым виджетом авторизации «многое делает не понимая сути» (у нас такое общество нынче, что заниматься тем, в чём не разбираешься и кричать «я не хочу в этом разбираться, сделайте мне „зашибись“ — стало модно). Поэтому, аналогия более чем корректна.

                    Далее не
                    вас останавливает от краж чужого только замок и полиция.

                    а
                    вы понимаете разницу между реакцией на провокацию и целенаправленным нарушением закона


                    Ну и к тому же, почему вы сразу примеряете это на меня? То, что я понимаю психологическую подоплёку этого дела — не значит, что это применимо ко мне.

                    Попробую ещё раз:
                    Если вы добровольно делаете всё, чтобы упростить слежку за вами — вы не имеете морального права возмущаться тем, что за вами следят. Вы сами всё для этого сделали.
                    • 0
                      Пошла демагогия что «юзеры как дети». Ожидаемо и скучно. По такой логике тогда нельзя наказывать любых лохотронщиков. Им же все сами деньги отдали, так сказать «добровольно».

                      Вы ушли от главного — чужая собственность является чужой по факту, а не по наличию замка. И в этом плане обход API для «якобы» авторизации пользователя ничуть не лучше взлома. Есть соглашение — будте добры его соблюдать.

                      > Вы сами всё для этого сделали.

                      А расставшиеся с мобилкой ночью в неблагополучном районе тоже не имеют права писать заявления и жаловаться. Т.к. надо гулять только под светов фонаря и только где есть охрана. Так?
                      • 0
                        Вот только никакого обхода API не происходит. А так — всё хорошо. Равно как и авторизации пользователя не происходит.

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

                        Более правильная аналогия была бы: человек, занимающийся сексом на балконе своей квартиры в многоэтажном доме «загнутой» формы не имеет морального (акцентирую внимание на этом слове, а то вы его упустили в прошлый раз) права писать заявление в полицию на то, что кто-то из подъезда напротив (или бокового) снял это на видеокамеру, и мотивировать эту претензию вторжением в частную жизнь и что-то говорить про согласие на обработку персональных данных.
                        • 0
                          Не нравятся гопники, пусть будут карманники. Они не угрожают. А вообще за демагогий вы просто уходите от факта что чужое это чужое.
  • +17
    Вроде бы там невидимый виджет авторизации подставляется.
    Как описано здесь habrahabr.ru/post/228617/
  • +8
    Разные браузеры для разных групп интересов. Один браузер собственно для серфигна — там не должно быть ни одной регистрации ни на одном сайте. И несколько браузеров для конкретных групп ресурсов с регистрациями и куками.
    • +1
      Главное — не перепутать.
  • +12
    Вообще то да, лучше чтоли отдельный браузер для социальных контактов держать. Очень огорчен что есть возможность на стороннем сайте отловить id из вк.
    До этого настолько же сильно огорчился от вот этого функционала ВК — vk.com/docs (попробуйте например поискать по слову «паспорт»)
    • +13
      лучше напишите «пароль», офигеете ещё сильнее
      • +1
        там даже есть пароли от вконтактика.
        • 0
          рекурсия!)
        • +1
          Да что там. Первый попавшийся «пароли.txt» оказался c корпоративными контактами, паролями и деталями настройки сетевого оборудования одной важной немосковской компании. Конечно же это шутка.
          • 0
            Там вродебы пароли только к свичам в локальной сети.
            А на аккаунт на провайдерском сайте нету.
      • 0
        ахах, прикольно на «пароль» выдало вторым по счёту файл
        мой пароль.txt

        где пароль к некому логину alizar ))
      • 0
        Офигению нету предела… Ладно на личные сайты пароли лежат, так ведь там корпоративные логины куда попало вплоть до страховых компаний… Это ж полный ппц. А пострадают совсем левые люди, которые никаких паролей не знают и не выкладывали…
    • +1
      Думаю что С***ов Анатолий А*****вич с удивлением узнает что должен оплатить кредит за Рено Логан. Спасибо, меня вы тоже сильно огорчили.
    • +1
      «Банковская карта» — тоже ищется…
    • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Года четыре назад была целая драма по похожей ситуации, только тогда замешаны были facebook и Amazon
  • +8
    По идее Ghostery должен помочь в борьбе с нежелательной идентификацией. Кто-нибудь пробовал воспроизвести баг с установленным Ghostery (Я не пользуюсь VK)?
    • 0
      Ghostery отлично это всё блокирует.
      От всего кликджекинга он, конечно, не спасёт, но виджеты соц. сетей не пропустит.
    • +4
      NoScript срабатывает при нажатии и сообщает о clickjacking'e.
    • –2
      Ghostery хорош, но вот интересно, существуют ли плагины/браузеры, запускающие вкладки в sandbox'е, т.е. полностью изолирующие?
      • +2
        в Хроме и Фоксе есть возможность по правой кнопке открыть ссылку в режиме приватности.
        • +1
          К сожалению все одновременно открытые приватные/инкогнито вкладки разделяют общие cookie и кеш.
          То есть, если один и тот же сайт открыть в трёх разных приватных вкладках или приватных окнах, то сайт будет считать, что сессия в этих вкладках одна. И нельзя на Хабрахабр залогиниться под тремя пользователями одновременно. Нужно несколько браузеров для этого открывать.
  • +5
    Я вам больше скажу, подобная схема с api vk.com давно используется мошенниками. Заходите на какой-нибудь сайт, а на нём партнерка тизерная висит, которая автоматически открывает новую вкладку с сайтом мошенника. А во вкладке — страница с вашим именем-отчеством, мол вы нарушили закон, ваш пк блокирован, заплатите штраф. Маскируются мудаки под правохранительные органы страны, к которой принадлежит ip, а блокировка — это не что иное как невозможность закрыть вкладку, т.к. на window.reload и window.onbeforeclose навешаны обработчики с кучей alert'ов.
    Могу скрины приложить, если интересно кому.
    • –1
      Хром после первого алерта даёт галочку «предотвратить появление окон»
      И все закрывается.
  • +1
    А можно, специально для прапорщиков, объяснить техническую сторону вопроса?
    • 0
      Upd: спасибо, уже прочитал по ссылке выше, ну это нехорошо конечно.
  • +4
    Данная вещь уже обсуждалась на хабре. Плюс слово «теперь» в заголовке совсем неуместно — для ВК это как минимум с 2011 года работает.

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

    Для твиттера еще с 2009 года такие статьи есть — очень познавательно. То, что сайты могут узнавать информацию о посетителях — это еще цветочки. Верх мастерства, ну, кроме того, что можно еще и лайки от имени пользователя проставлять — поставить такой код на сайт конкурента и ловить всех его клиентов в ВК. Промышленный шпионаж, так сказать) Грустно.
  • –24
    уже года два как использую эту фишку :) с волками жить — по волчьи выть :)
  • +4
    Вот именно поэтому хорошая идея использовать разные браузеры (у меня лично 3 шт) для работы и серьезных дел(платежи), для общения и для (порно) развлечений… и на всех понавешаны noscript (scriptsafe), ghostery, adblock, flashblock и по желанию режим инкогнито… Причем везде, кроме браузера для социалок, все скрипты социалок внесены в черный список…
    • +1
      А чем профили пользователей в Хроме не устраивают?
      • 0
        Профилями я тоже пользуюсь, но уже для дома\работы.
    • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Хм… А разве на порносайт может «случайно» занести кого-то из здешней IT-продвинутой аудитории? :)
    А так, вообще, уже давно пора выучить шорткаты для безопасной навигации (Ctrl+Shift+P в «лисе», например. Или другую, для мгновенного переключения коннекта вкладки с прямого на «через tor»).
    • +7
      А разве в тексте есть слово «случайно»?
  • 0
    Я как-то заходил на сайт одной веб-студии, а затем в контакте получил личное сообщение от это студии.
  • +1
    Как то разрабатывал голосование участников через соц. сети. Так тоже над этим задумался для статистики, но ввиду того, что это неправомерно откинул эту идею. Даже с юристами разговаривал на эту тему (для статистики просто собирать данные), но они мне сказали, что без моего согласия они не имеют на это право. Т.е. как мне сказали — можно что-то типа лицензионного соглашения во «всплывашке» сделать (его ведь никто все равно не читает и соглашается так). Но я откинул эту идею, т.к. подставил себя на их место — я бы не зашел на такой сайт больше.
    • НЛО прилетело и опубликовало эту надпись здесь
      • +1
        Дело в том, что пользователь должен дать свое согласие, и только после этого вы можете использовать его персональные данные. В случае с голосование мы использовали текст, что когда он голосует, то он ознакомился с правилами. Это автоматически снимает ответственность с администрации сайта. Поэтому когда ставишь андроид приложения перед установкой они используют наподобие того же.
        • НЛО прилетело и опубликовало эту надпись здесь
        • +1
          Вопиющий беспредел как раз и состоит в том что клиенты сервиса socfishing.ru ничего не спрашивают у пользователей. Сайты получают ценную информацию, а socfishing накапливает нехилую базу пользователей с их персональными данными, историей посещения сайтов и их поисковыми запросами. При этом используется дыра в безопасности, которая уже монетизируется в крупных масштабах.
        • 0
          А теперь вопрос, ничего что вы уже дали согласие на использование ваших данных тому же вконтакте? В данном случае не вы передаете персональные данные, а именно вконтакте. Технически используя апи сайт получает разрешение на использование уже у вконтакте. Это тоже самое что через апи будет сканироваться ваш список друзей и записываться их имена и фамилии, они не давали разрешения этому сайту, а вот вк давали на обратотку данных.
          • 0
            Технически, в соотвествии с оффициальной документацией API ВКонтакте, нет способа получить ID пользователя без его согласия. Сервис использует очевидную уязвимость в виджете авторизации.

            Я дал согласие на обработку личных данных только контакту, но не всем сайтам в интернете.
    • 0
      А правомерно, что Мегафон модем отправляет на специальные сайты, где для того чтобы подписаться на платную подписку, достаточно просто кликнуть на саму страницу (внизу мелкий шрифт, кстати, с условиями). Больше не нужно указывать свой номер телефона. Итак, делает вся тройка сотовых операторов. Недавно узнал.

      Так что никому уже не нужны согласия посетителей, что очень печально…
  • +6
    Миллион плюсов тому, кто напишет на Хабр статью о защите своих данных в интернете с основными типами угроз и методами противодействия.
  • –2
    Ссылку на сам сервис найти не сложно. Вопрос в другом: как вообще это стало возможно в таких масштабах?

    1. Подключаем <script src="//vk.com/js/api/openapi.js"></script>

    2.
    Если нужен только ID пользователя (извините, jQuery):
    function authInfo(response) {
    	if(response.status=='connected') {	// если пользователь залогинен в ВК
    		console.log('user_ID: '+response.session.mid);
    	}
    	else {
    		VK.Auth.login(authInfo); // опционально можем спалиться и вызвать всплывающее окно авторизации
    	}
    }
    $(function() { VK.Auth.getLoginStatus(authInfo); }); // проверяем наличие входа в ВК, ответ отправляем в функцию обработчик
    


    Если нужен ID + Имя и Фамилия:
    function authInfo(response) {
    	if(response.status=='connected') {	// если пользователь залогинен в ВК
    		if(typeof(response.session.user) == 'undefined') { // этого поля нет тогда, когда пользователь был залогинен ранее
    			VK.Api.call('users.get', { uid: response.session.mid }, function(r) { console.log(r.response[0].first_name+' '+r.response[0].last_name); console.log('user_id: '+response.session.mid); });
    		}
    		else { // если авторизация прошла только что (от VK.Auth.login(authInfo);), то имя и фамилия уже будут в ответе
    			console.log(response.session.user.first_name+' '+response.session.user.last_name); console.log('user_id: '+response.session.mid);
    		}
    	}
    	else {
    		VK.Auth.login(authInfo); // опционально можем спалиться и вызвать всплывающее окно авторизации
    	}
    }
    $(function() { VK.Auth.getLoginStatus(authInfo); }); // проверяем наличие входа в ВК, ответ отправляем в функцию обработчик
    



    Аналогично делается и для FB.
    • +4
      Это сработает, если человек уже авторизовался в ВК на нашем сайте. Тут же речь о другом.
  • +2
    Для порносайтов существует специальный режим браузера.
  • 0
    Если еще сессию хранить в стиле Evercookie, то пользователь даже в соседнем браузере не останется анонимным: habrahabr.ru/post/104725/
  • +1
    Кстати, на заметку, Соцфишинг — это не просто несколько жуликов, а компания-резидент Казанского IT-парка. Видимо совсем все туго у наших инкубаторов, что такие «стартапы» на грани легальности берут к себе.
  • 0
    Вот это, CSRF и др. — всё к одному. Поэтому в вебе не хожу авторизованным где-либо, а при необходимости авторизации открываю окно с Private Browsing.
  • –2
    Подобная «уязвимость» есть на одном сайте, которую я использую для того, чтобы узнать ник юзера с этого сайта, который зашёл ко мне на сайт.
    Раньше можно было даже видеть пароль, ибо он годами передавался в открытую =))
    Но я случайно засветился и они пароль убрали годик назад, но ник остался до сих пор.

    Причём на этом сайте до сих пор «добавить в избранное» и разные другие действия можно делать по get-запросу (через тег img) =)
    Использую это, чтобы вести разную статистику.

    Спасибо за статью, нуна будет подглядывать и за юзерами vk
    • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Ну наконец-то закрыли! Если это можно так назвать — вроде как, если перейти сюда vk.com/dev/Auth, подключить любой сайт и попробовать авторизоваться, то авторизация теперь будет происходить в отдельном всплывающем окне, что, конечно же, будет наводить на определенную мысль пользователя сайта.
    • 0
      Официальную брешь закрыли. А могут быть еще. Такого вообще быть не должно.
      • 0
        Мало того, они еще есть. В целях обучения реализовал сегодня некий аналог.
  • 0
    Здравствуйте

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

    Уже и в Хроме на планшете все отслеживания отключил, а он все равно по адресу все ищет. (

    Спасибо!
    • 0
      Ghostery есть для Chrome. requestpolicy до сих пор только для лисы, но есть аналог, например, Cross-Domain Request Filter.
  • 0
    речь шла о сервисе соцфишинг? или о каком-то другом?
    кто знает как обстоит дело с этой проблемой на данный момент?
    • 0
      Месяц назад всё успешно функционировало. Да и сейчас, думаю тоже.
      Только принцип работы изменился, тот что в статье — более не актуален.
      • +1
        А можете подробнее как сейчас это работает?
        • 0
          Точно также, завел свои старые PoC'и — все ок.
          Определяем, залогинен ли чел на вк или нет. Если да — рисуем виджет с лайком уникальной ссылки (ссылку привязываем к выданной куке). Если лайкнул — смотрим кто лайкнул именно эту ссылку и все, сессию помечаем как задеаноненную и больше не рисуем невидимый виджет.
          • 0
            А можно ссылку на рабочий PoC?
            Кстати, получается Яндекс начал карать за сайты за такие методы.
            • 0
              Да, еще интересно как работают например эти ребята? Говорят что без ClickJacking.
              • 0
                Что-то я проверил (взял триал), оно вообще никак не детектит.

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