javax_slr (javax_slr) wrote,
javax_slr
javax_slr

Categories:

Pixel injection как путь к ФБ профайлингу

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

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

Идея вот в чем - через кукис, которые приходят в запросе пикселя, получить авторизацию как пользователь ФБ и попытаться скачать его профайл, подменив в запросе свой хост на имя хоста, на котором сидит юзер.
Вот мой репозиторий на GitHub,там я это делаю на котлине с помощью Spring Social facebook.

Как оказалось, это возможно лишь отчасти.
Во первых токен да, получается получить, но он валиден не более 1 секунды (видимо время, выделенное браузеру на скачивание контента со страницы фейсбука). Если у пользователя медленная сеть (я экспериментировал над собой ечрез медленный вай фай) это время растет.
Во вторых так можно скачать только ленту пользователя, которую он видит сейчас - т.е. в Spring Social API:
fbApiProvider.getAPI(userId).feedOperations().getFeed(id)
заменив перед этим токен request.setheader("Oauth-host", userHeaders.host)

Вобщем получается, что в среднем в 20% случаев я могу получить 5-10 постов из фида юзера, т.е. то, что он видит перед собой и в кэше его браузера. Что он лайкнул, что нет я таким образом не знаю. Но если мой пост с волщебным пикселем попадется в ленте опять, я опять получаю возможность посмотреть на ленту.Картинки с пикселем, я расшаривал только на русскоязычных друзей, а не как Паблик, от греха подальше

Что с этим можно делать?
Я попытался во первых собрать какие то идентификаторы того, что в ленте - имена людей и имена сайтов на которые линки.
Потом попробывал про некоторых из них дать какой то таг. Ну скажет haaretz - "левые","мерец". Биби - "правые", "ликуд"
если я сам в ленте то "космос" :) Ну и т.д.

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

Т.е. так с определенной долей вероятности можно узнать что кого интересует.
Но от этого до информации что кому писать в письме и какого цвета делать фон, чтобы изменить его избирательные пристрастия далеко конечно :(
Tags: programming, software
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments