Просмотр полной версии : Определение уникальности посетителя сайта
Добрый день.
Стоит задача определить уникальность зашедшего пользователя на сайт без использование cookie.
Один из вариантов - по IP-адресу. Но насколько понимаю - могут быть два и более человек с одним и тем же IP-адресом - и поэтому это не подходит.
Как еще можно определить уникальность зашедшего человека на сайт? Может быть писать в БД как можно больше информации о пользователе "IP-адрес, система, браузер" и тем самым создавать уникальный идентификатор - но насколько это разумно или есть другие способы?
Или возможно ли дописать к строке с IP-адресом еще какой-нибудь параметр, что бы различить посетителей.
Пример - где могут быть два и более одинаковых IP-адресов - это компьютерный клуб.
Обычно если пользователь на одном компьютере голосует на сайте, то при заходе на сайт c данного и других компьютеров опрос уже заблокирован, т.к. пользователь проголосовал.
--
Иван.
dmartynenko
19.12.2012, 19:07
Задачка у вас сложная :)
"IP-адрес, система, браузер" - вы на правильном пути. Есть такой прямо научный подход: http://panopticlick.eff.org/
Но готовых решений этим методом "из коробки" я не видел. Непростое это дело видимо.
Если рассматривать задачу голосования, то куки однозначно удобней всего. А тех у кого нет кук (выключены, робот) можно вообще не пускать голосовать.
Защититься в интернете от роботов очень сложно. Если уж кто-то толковый поставит задачу накрутить голоса, то накрутит. Ведь и IP подменить (используя бесплатные прокси), и User-Agent по списку подставлять - все можно.
Как крайняя, но очень надежная, мера - заставлять решать капчу что бы проголосовать.
Можно еще какие-нибудь методы скрытой проверки применять. Делая вид что все голоса учитываются, помечать те которые выглядят подозрительно. После завершения голосования их отсеять.
1. Капча обычно работает через Cookie или нет - т.е. как происходит обмен данными между формой и капчей?
2. И как через Php можно жестко проверить включенность cookie?
Т.е. if (COOKIE == включены)
else
cookie выключены
или это не осуществимо?
Задачка у вас сложная :)
"Есть такой прямо научный подход: http://panopticlick.eff.org/
Не совсем понял что это:
Там кроме "User Agent" более никакой информации...
User Agent - могу как и везде получить через GLOBALS[_SERVER]
Valery Romanchev
19.12.2012, 20:19
еще есть неубиваемые кукес http://habrahabr.ru/post/104725/
dmartynenko
19.12.2012, 20:24
В любом случае эти куки работают только на "честных" броузерах, которые исполняют JS. Если кук нет - значит это простой робот.
dmartynenko
19.12.2012, 20:28
Капча работает через сесии, а для сессии тоже нужны куки.
Что-то вы плохо сморели. Там собирается вся информация которая возможно из броузера. И по ней делается вывод на сколько мой броузер по ней "уникален" среди других. Мой например повторяется только в одном из 2,5 милиионов броузеров.
Your browser fingerprint appears to be unique among the 2,594,449 tested so far.
Currently, we estimate that your browser has a fingerprint that conveys at least 21.31 bits of identifying information.
Там есть ссылка на научную работу по теме, если осилите :), http://panopticlick.eff.org/browser-uniqueness.pdf
dmartynenko
19.12.2012, 20:32
В "неубиваемых куках" упомянуты "куки" в ETags, дял которых не нужен JS:
http://en.wikipedia.org/wiki/HTTP_ETag
Tracking using ETags
ETags can be used to track unique users,[2] as HTTP cookies are increasingly deleted by privacy-aware users. As of July 2011, researchers report that a number of Websites, including Hulu.com, are using ETags for tracking purposes.[3] Hulu and KISSmetrics have both ceased "respawning" as of 29 July 2011,[4] as KISSmetrics and over 20 of its clients are facing a class-action lawsuit over the use of "undeletable" tracking cookies partially involving the use of ETags.[5]
Because ETags are cached by the browser, and returned with subsequent requests for the same resource, a tracking server can simply repeat any ETag received from the browser to ensure an assigned ETag persists indefinitely (in a similar way to persistent cookies).
Вот только для типового сценария голосования не подходит. Так как ETag однозначно связан с URL. А URL голосования обычным GET/POST или AJAX отличается от URL исходной страницы. Значит броузер ETag не передаст при голосовании. Таким методом можно отслеживать уникальные и повторные посещения обычных страниц сайта.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot