Canvas fingerprinting

Discussion in 'Болталка' started by altblitz, 12 Feb 2018.

  1. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    ты прям мысли посты читаешь ))
    если где есть getImageData и по области (3 и 4 параметры больше единицы) - значит фингерпринтинг
    вот ключевой момент поиска канвас фингерпринт
     
  2. reds1993

    reds1993 Active Member

    Joined:
    25 Aug 2008
    Messages:
    48
    Likes Received:
    131
    Reputations:
    0
    Насколько я понимаю, то надо эти данные еще отправить на сервер? :)
     
    user100 likes this.
  3. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    582
    Reputations:
    52
    Повторяю, это никакой не фингерпринт. Здесь функция getImageData получает значение R,G,B,A одного пикселя с координатами 12х12. Если выборка пикселя попадёт на область канваса где нет графики то значение R (т.е. data[0]) будет равно 0. Смысл этого - просто узнать напечатался символ или нет. Если-бы надо было сделать фингерпринт то для этого понадобится напечатать много текста и взять md5 от всех пикселей картинки а не от 1 пикселя.
    Как минимум любой, кто знает javascript понимает, что в любом случае функция возвращает true/false а это не годится для фингерпринта.

    Code:
    <script type='text/javascript'>
        var pixelRatio = 1;
        var offset = 12 * pixelRatio;
        var node = document.createElement('canvas');
        node.style.border = '1px solid #000';
        node.width = '100';
        node.height = '100';
        document.body.appendChild(node);
    
        var ctx = node.getContext('2d');
        ctx.fillStyle = '#f00';
        ctx.textBaseline = 'top';
        ctx.font = '32px Arial';
        ctx.fillText('\ud83d\udc28', 0, 0);
        var dataText = '', data = ctx.getImageData(offset, offset, 1, 1);
        for (key in data) {
            dataText += key + '=' + data[key] + "\n";
        }
        alert(dataText);
    </script>

    Неправильно понимаешь. Отправлять на сервер нечего. Потому что этот код не собирает данных пригодных для идентификации браузера.

    Я когда-то делал для одного своего сайта фингерпринт юзеров и знаю как это работает.
     
    #163 pas9x, 14 Feb 2018
    Last edited: 14 Feb 2018
    Veil, user100, crlf and 1 other person like this.
  4. reds1993

    reds1993 Active Member

    Joined:
    25 Aug 2008
    Messages:
    48
    Likes Received:
    131
    Reputations:
    0
    не понял. А зачем тогда этот фингерпринт нужен то? :)
     
  5. spiner

    spiner Member

    Joined:
    8 Jul 2015
    Messages:
    74
    Likes Received:
    56
    Reputations:
    4
    он имеет в виду, что для того, чтобы какие-нибудь данные отправить на сервер, для начала нужно эти данные собрать, чего данный скрипт не делает, как бы некоторые индивидумы не пытались навязать обратное, не изучив скрипт
     
    reds1993 likes this.
  6. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    ты зачем-то мне второй раз повторяешь мной же разжеванное )))
     
  7. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    @user100 @altblitz посмотрите своими браузерами гмайл и яндекс.майл начиная с окна логина ;)
     
  8. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,697
    Likes Received:
    3,139
    Reputations:
    236
    Что случилось с гмайл?
    Какие нововведения в нём? Открывается, как обычно - loading egorych@gmail.com.
     
  9. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    я имел ввиду последи за индикацией фингерпринтинга на всех этапах, начиная с интерфейса логина
     
  10. user100

    user100 Moderator

    Joined:
    24 Dec 2011
    Messages:
    4,497
    Likes Received:
    16,632
    Reputations:
    373
    На обоих есть Canvas.
    Фингерпринт задетекчен на e.mail.ru ;)
     
    _________________________
  11. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    те в яндексе и гугломайле канвас исключительно рисует, не фингерпринтит?
    это тебе встроенный в лису58 детектор указывает?
    давай подробнее повествуй
     
  12. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    @user100 на тебе уся надежда

    попробуй через приватную вкладку (если на ней показывается индикация фингерпринтинга) залогиниться в яндекс-майл и ГуМайл и посмотреть не выскакиевает ли фингерпринт-индикация на каком-нибудь из этапов от логина до использования?

    а ты в коде смотрел нах они юзают канву?
     
  13. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,697
    Likes Received:
    3,139
    Reputations:
    236
    На FF 52esr, фингерпринтинг не наблюдается на ГМейл.
    Если оно есть, то зависит не от браузера, а скажем так, от других факторов, что считывают js скрипты гугл.

    Например, от выключенной геолокации.
     
  14. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    а можешь открыть приватную вкладку и пройти по всем шагам - посмотреть на каждом из них нет ли фингерпринта
    (логин, открыти интерфейса, открытие сообщения)
     
  15. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,697
    Likes Received:
    3,139
    Reputations:
    236
    Можно.
    В FF есть специальное окно веб-дизайнера, по F12 клавише.
    Но как это записать по шагам?

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

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    в процесе логина в гмайл плагин что показывает? есть фингерпринт канвой?
    в процесе работы в гмайл плагин что показывает? есть фингерпринт канвой?
    при просмотре письма плагин что показывает? есть фингерпринт канвой?
     
  17. user100

    user100 Moderator

    Joined:
    24 Dec 2011
    Messages:
    4,497
    Likes Received:
    16,632
    Reputations:
    373
    Поправка, Яндекс почта не пользует Canvas. Его пользует майл.сру и фингерпринт тоже она делает;)
     
    _________________________
  18. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,380
    Likes Received:
    5,179
    Reputations:
    48
    Гмайл не использует канвас? Гмайл не фингерпринтит канвасом?
    только майлру фингерпринтит канвасом?

    ты гмайл и яндекс по полному циклу просмотрел? от логина?
     
  19. user100

    user100 Moderator

    Joined:
    24 Dec 2011
    Messages:
    4,497
    Likes Received:
    16,632
    Reputations:
    373
    Все по полной потестил, Ubloсk спецом вырубил .
    Gmail.com пользует canvas.
    Но фингерпринт там не детектится.
    Яндекс не пользует.
    Майл ру пользует и фингерпринт делает.

    П.с.
    Canvas много где есть: на гитхабе например, на вебманях ,новостных сайтах...
     
    _________________________
    Triton_Mgn and devton like this.
  20. reds1993

    reds1993 Active Member

    Joined:
    25 Aug 2008
    Messages:
    48
    Likes Received:
    131
    Reputations:
    0
    Вижу есть люди разбирающиеся в js и jquery на отлично!
    Ребята, подскажите плиз, мож сталкивались с таким нюансом?:

    На карточке товара делается выбор варианта товара посредством POST XMLHttpRequest.
    После этого запроса происходи заново перезагрузка файлов библиотеки jquery и сопутствующих к jquery файлов.
    Из-за этого происходит лишний трафик ну и заново отрабатывается с заметным замедлением отработка jquery кода в динамическом блоке.

    При тесте на локалхосте - этого нет. Происходит только один запрос без дополнительной перезагрузки остальных файлов.
    А вот если сайт на хостинге - то происходит такая ситуация. Думал особенность хостинг, но попробовал 2 разных - все то же самое.

    В связи с чем это происходит? Можно ли сделать так чтоб эти файлы не перезагружались?

    Заранее спасибо.

    Для примера:

    Вот соединения при запросе на удаленный сервер:

    [​IMG]


    А это если запрос к локалхосту

    [​IMG]