Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 10.04.2015 20:10:36

получение uid браузера

Наверное не совсем по теме лары задаю вопрос, но помощь очень нужна знающих.
Делаю сервис приема одной строительной фирме. Смысл в том, что хочу пресечь создание заявок одним и тем же человеком. В базе хранится версия браузера и ОС в md5. Собственно это несерьезная проверка, эти данные легко могут быть изменены.
Я слышал очень давно что есть возможность получить UID браузера юзера, который не изменяется даже при переустановке браузера или его обновлении. Вопрос - как добыть uid браузера?
Вообще, возможно есть какие-то пакеты или наработки, которые максимально точно определяют пользователя через браузер.
Да, я слышал про evercookie, но это немного не то, тем более что тоже обходится спокойно.

Изменено sedvig (10.04.2015 20:15:55)

Не в сети

#2 11.04.2015 00:04:11

Re: получение uid браузера

О, какая холиварная тема. То, что вы хотите, называется browser fingerprinting. Как такового UID нет, потому как браузер — это обычная программа, и если удалить все её следы, то и UID никакого не останется. Другой вопрос — где эти следы — в реестре, appdata, где-то ещё. Тем не менее, полной переустановкой ОС начистую всё это тоже стирается. Если не стирается — это называется руткитом и в общем-то уже из области вирусов. Не думаю, что основные браузеры сегодня это делают, даже Chrome. У последнего, кстати, действительно есть свой ID, но доступен ли он для сторонних сервисов — не знаю (Google собирает статистику, связывая пользователя по этому ID). Так как подобная идентификация сильно граничит с нарушением личной жизни человека, то компании к ней относятся осторожно.

В целом, думаю, что штатными средствами браузера вы это не сделаете. А вот хитростями — сколько угодно. Наберите в гугле «how unique is my browser», есть исследования на эту тему и сайты с демками. Посмотрите в сторону отпечатка через рисование на <canvas>, это сегодня самый точный метод.

Но, опять же, учтите, что кому надо это всё легко обойдёт (в браузере TOR, например, есть защиты от таких штучек). Но если в вашем случае сайтом пользуются обычные пользователи — это может сработать. Про очистку cookie сегодня многие знают, но это очень старый и уже далеко не единственный метод опознания клиента.

Не в сети

#3 11.04.2015 13:30:28

Re: получение uid браузера

>>Наберите в гугле «how unique is my browser», есть исследования на эту тему и сайты с демками.Посмотрите в сторону отпечатка через рисование на <canvas>, это сегодня самый точный метод.

Да, спасибо большое.
Немного посмотрел и наткнулся на такие сервисы:
panopticlick.eff.org
www.browserleaks.com

Но кроме демонстраций возможностей примеров реальных пока не нашел (ну или может плохо искал). То есть заюзать в проекте не представляется возможным. Лучше всего конечно технологии на java и canvas, но яву я пока отметаю за недостатком знаний.

Изменено sedvig (11.04.2015 13:33:30)

Не в сети

#4 11.04.2015 15:09:10

Re: получение uid браузера

  1. Но кроме демонстраций возможностей примеров реальных пока не нашел (ну или может плохо искал).

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

  1. Лучше всего конечно технологии на java и canvas, но яву я пока отметаю за недостатком знаний.

Нет, речь не о Java, а о HTML5 <canvas>. В кратце, на «холсте» (canvas) с помощью JavaScript можно рисовать, причём очень сложные вещи типа 3D-рендеринга. Можно выводить и текст. Весь вывод очень сильно зависит от многих факторов: от браузера, но и от используемой ОС, железа и т.п. Например, штатно нельзя узнать, включен ли у вас ClearType в Windows (сглаживание шрифтов на экране), а вот выведя текст на canvas и потом попиксельно его проверив это можно очень легко установить. Ну, и соответственно связав вместе разные приёмы, которые дают определённый результат в зависимости от известных факторов, можно получить очень точный отпечаток пользователя, который может даже пережить переустановку ОС, смену браузера и т.п. Но тут надо проводить исследование, хотя в простейшем случае вы, наверное, сможете кое-что придумать довольно быстро — например, выведя короткую строку, посчитав хэш от всех пикселей на холсте и потом сохранив его в базе на сервере и/или сравнив с теми, что там уже были.

Не в сети

Подвал раздела