Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Инструменты разработчика (http://forum.typo3.ru/forumdisplay.php?f=34)
-   -   Определение уникальности посетителя сайта (http://forum.typo3.ru/showthread.php?t=10520)

Ивано 19.12.2012 16:53

Определение уникальности посетителя сайта
 
Добрый день.

Стоит задача определить уникальность зашедшего пользователя на сайт без использование cookie.

Один из вариантов - по IP-адресу. Но насколько понимаю - могут быть два и более человек с одним и тем же IP-адресом - и поэтому это не подходит.

Как еще можно определить уникальность зашедшего человека на сайт? Может быть писать в БД как можно больше информации о пользователе "IP-адрес, система, браузер" и тем самым создавать уникальный идентификатор - но насколько это разумно или есть другие способы?

Или возможно ли дописать к строке с IP-адресом еще какой-нибудь параметр, что бы различить посетителей.
Пример - где могут быть два и более одинаковых IP-адресов - это компьютерный клуб.
Обычно если пользователь на одном компьютере голосует на сайте, то при заходе на сайт c данного и других компьютеров опрос уже заблокирован, т.к. пользователь проголосовал.


--
Иван.

dmartynenko 19.12.2012 19:07

Задачка у вас сложная :)

"IP-адрес, система, браузер" - вы на правильном пути. Есть такой прямо научный подход: http://panopticlick.eff.org/
Но готовых решений этим методом "из коробки" я не видел. Непростое это дело видимо.

Если рассматривать задачу голосования, то куки однозначно удобней всего. А тех у кого нет кук (выключены, робот) можно вообще не пускать голосовать.

Защититься в интернете от роботов очень сложно. Если уж кто-то толковый поставит задачу накрутить голоса, то накрутит. Ведь и IP подменить (используя бесплатные прокси), и User-Agent по списку подставлять - все можно.

Как крайняя, но очень надежная, мера - заставлять решать капчу что бы проголосовать.

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

Ивано 19.12.2012 19:15

1. Капча обычно работает через Cookie или нет - т.е. как происходит обмен данными между формой и капчей?
2. И как через Php можно жестко проверить включенность cookie?

Т.е. if (COOKIE == включены)

else

cookie выключены

или это не осуществимо?

Ивано 19.12.2012 19:17

Цитата:

Сообщение от dmartynenko (Сообщение 35268)
Задачка у вас сложная :)

"Есть такой прямо научный подход: 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 не передаст при голосовании. Таким методом можно отслеживать уникальные и повторные посещения обычных страниц сайта.


Часовой пояс GMT +4, время: 10:24.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot