Ребята из https://panopticlick.eff.org давно уже провели исследования и описали методику «отслеживания» браузера пользователя, даже в случае если у него отключены cookie.
Методика проста — собираем всю возможную информацию о браузере, плагинах, os и т.п — комбинация всей этой информации достаточно уникальна, подробная математика тут: https://panopticlick.eff.org/browser-uniqueness.pdf
В качестве разминки в стеке LAMP — реализовал описанный выше механизм для получения «отпечатка браузера».
Посмотреть «отпечаток» своего бразуера можно тут:
http://test.look-in.net/finger/
и если у вас не очень новый браузер то тут (ниже описано почему)
http://rest.look-in.net/restapi/static/
Особенно приятно смотреть на то, что отпечаток всегда один, даже если вы включаете в chrome режим анонимности. (то есть анонимности у вас то и нету).
Можете поиграть с отпечатком — поудаляйте куки, подключитесь через другого провайдера (другой IP) — отпечаток будет один и тот же. (большой брат следит за вами)
О реализации:
- Python + Django + Tastypie — для реализации REST API сервера, который и выполняет работу по вычислению отпечатка.
- Jquery (plugins: flash, json. timers) — для сбора локальной информации о браузере и отоправки его на сервер.
- Flash+ActionScript — получение списка шрифтов системы
- MySQL — в качестве хранилища (для этой задачи не принципиален, но хочется по анализировать результаты работы REST API)
- Немного CORS — для поддержки API, (именно CORS и не работает, например, в IE9 по ссылке http://test.look-in.net/finger/)
Есть глубокое подозрение, что методика от https://panopticlick.eff.org будет давать сбои на мобильных браузерах (в силу того что мобильные браузеры очень похожи), так что если вы получите отпечаток для iphone / ipad — я буду благодарен.
И да, лучи проклятья хостеру ValueHost, который по умолчанию предлагает Django 1.1.1.
http://bcs.look-in.net
Привет! Я не по теме, хочу спросить про твой старый сайт о белорецкой компьютерной ?коле http://bcs.look-in.net
Там было много фоток. А их нет возможности выложить куда нибудь?
С уважением,
Альберт Кагарманов, Hamburg
посмотри чекеры на http://www.browserleaks.com для повы?ения энтропии, а также погугли на тему webgl отпечатков видеокарт
С линуксовой тачки:
«Traceback (most recent call last):
File «/pub/home/look/.local/lib/python2.6/site-packages/django_tastypie-0.9.11-py2.6.egg/tastypie/resources.py», line 192, in wrapper
response = callback(request, *args, **kwargs)
File «/pub/home/look/.local/lib/python2.6/site-packages/django_tastypie-0.9.11-py2.6.egg/tastypie/resources.py», line 397, in dispatch_list
return self.dispatch(‘list’, request, **kwargs)
File «/pub/home/look/.local/lib/python2.6/site-packages/django_tastypie-0.9.11-py2.6.egg/tastypie/resources.py», line 427, in dispatch
response = method(request, **kwargs)
File «/pub/home/look/.local/lib/python2.6/site-packages/django_tastypie-0.9.11-py2.6.egg/tastypie/resources.py», line 1165, in post_list
updated_bundle = self.obj_create(bundle, request=request, **self.remove_api_resource_names(kwargs))
File «/pub/home/look/.local/lib/python2.6/site-packages/django_tastypie-0.9.11-py2.6.egg/tastypie/resources.py», line 1780, in obj_create
bundle.obj.save()
File «/pub/home/look/rest_api/restapi/restapi/models.py», line 25, in save
m.update(self.browser_plugin)
UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\xae’ in position 1569: ordinal not in range(128)